序号 项目号 项目名称 上节点项目号
1 100101 外国人签证费
2 10010101 零次、一次签证 100101
3 10010102 二次签证 100101
4 10010103 签证延期 100101
5 10010104 半年(含半年)多次签证 100101 如何写语句,把项目名称,加上‘上节点项目号’的‘项目名称’。 例如:把2号的项目名称变成 '外国人签证费__零次、一次签证'要UPDATE语句。。查询语句我会写。
1 100101 外国人签证费
2 10010101 零次、一次签证 100101
3 10010102 二次签证 100101
4 10010103 签证延期 100101
5 10010104 半年(含半年)多次签证 100101 如何写语句,把项目名称,加上‘上节点项目号’的‘项目名称’。 例如:把2号的项目名称变成 '外国人签证费__零次、一次签证'要UPDATE语句。。查询语句我会写。
set 项目名称=b.项目名称+'_'+a.项目名称
from tb a,tb b
where a.上节点项目号=b.项目号使用只有2级的情况
A.序号,
A.项目号,
B.项目名称+'_'+A.项目名称 AS 项目名称,
A.上节点项目号
FROM
TB A
JOIN
TB B ON A.上节点项目号=B.项目号
--> 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 行受影响)
-- 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)*/