序号      项目号    项目名称             上节点项目号 
1        100101    外国人签证费 
2        10010101  零次、一次签证          100101 
3        10010102  二次签证                100101 
4        10010103  签证延期                100101 
5        10010104  半年(含半年)多次签证  100101 如何写语句,把项目名称,加上‘上节点项目号’的‘项目名称’。 例如:把2号的项目名称变成 '外国人签证费__零次、一次签证'要UPDATE语句。。查询语句我会写。

解决方案 »

  1.   

    update a
    set 项目名称=b.项目名称+'_'+a.项目名称
    from tb a,tb b
    where a.上节点项目号=b.项目号使用只有2级的情况
      

  2.   

    SELECT
      A.序号,
      A.项目号,
      B.项目名称+'_'+A.项目名称 AS 项目名称,
      A.上节点项目号
    FROM
      TB A
    JOIN
      TB B ON A.上节点项目号=B.项目号
      

  3.   

    ---------------------------------------------
    --> Author : js_szy
    --> Target : 各位大大,小卒就是想要一朵花
    --> Date   : 2009-12-02 12:59:45
    --> Version: SQL Server 2005
    ---------------------------------------------
        
    --> 测试数据: @tb
    declare @tb table (序号 int,项目号 int,项目名称 varchar(50),上节点项目号 int)
    insert into @tb
    select 1,100101,'外国人签证费',null union all
    select 2,10010101,'零次、一次签证',100101 union all
    select 3,10010102,'二次签证',100101 union all
    select 4,10010103,'签证延期',100101 union all
    select 5,10010104,'半年(含半年)多次签证',100101
    update a
    set 项目名称=b.项目名称+'_'+a.项目名称
    from @tb a,@tb b
    where a.上节点项目号=b.项目号select * from @tb序号          项目号         项目名称                                               上节点项目号
    ----------- ----------- -------------------------------------------------- -----------
    1           100101      外国人签证费                                             NULL
    2           10010101    外国人签证费_零次、一次签证                                     100101
    3           10010102    外国人签证费_二次签证                                        100101
    4           10010103    外国人签证费_签证延期                                        100101
    5           10010104    外国人签证费_半年(含半年)多次签证                                 100101(5 行受影响)
      

  4.   

    -- =============================================
    -- Author:      T.O.P
    -- Create date: 2009/12/02
    -- Version:     SQL SERVER 2005
    -- =============================================
    declare @tb table([序号] int,[项目号] int,[项目名称] varchar(40),[上节点项目号] int)
    insert @tb
    select 1,100101,'外国人签证费',null union all
    select 2,10010101,'零次、一次签证',100101 union all
    select 3,10010102,'二次签证',100101 union all
    select 4,10010103,'签证延期',100101 union all
    select 5,10010104,'半年(含半年)多次签证',100101update b
    set b.[项目名称] = a.[项目名称]+'_'+b.[项目名称]
    from @tb a inner join @tb b on a.[项目号]=b.[上节点项目号]
    where a.上节点项目号 is nullselect * from  @tb--测试结果:
    /*
    序号          项目号         项目名称                                     上节点项目号
    ----------- ----------- ---------------------------------------- -----------
    1           100101      外国人签证费                                   NULL
    2           10010101    外国人签证费_零次、一次签证                           100101
    3           10010102    外国人签证费_二次签证                              100101
    4           10010103    外国人签证费_签证延期                              100101
    5           10010104    外国人签证费_半年(含半年)多次签证                       100101(5 row(s) affected)*/