菜鸟的问题,急!

wjaco 2009-12-02 12:52:22
序号 项目号 项目名称 上节点项目号
1 100101 外国人签证费
2 10010101 零次、一次签证 100101
3 10010102 二次签证 100101
4 10010103 签证延期 100101
5 10010104 半年(含半年)多次签证 100101

如何写语句,把项目名称,加上‘上节点项目号’的‘项目名称’。

例如:把2号的项目名称变成 '外国人签证费__零次、一次签证'

要UPDATE语句。。查询语句我会写。
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2009-12-02
  • 打赏
  • 举报
回复
SELECT
A.序号,
A.项目号,
B.项目名称+'_'+A.项目名称 AS 项目名称,
A.上节点项目号
FROM
TB A
JOIN
TB B ON A.上节点项目号=B.项目号
华夏小卒 2009-12-02
  • 打赏
  • 举报
回复
update a
set 项目名称=b.项目名称+'_'+a.项目名称
from tb a,tb b
where a.上节点项目号=b.项目号


使用只有2级的情况
david0927cs2006 2009-12-02
  • 打赏
  • 举报
回复
sf
icelovey 2009-12-02
  • 打赏
  • 举报
回复
-- =============================================
-- 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,'半年(含半年)多次签证',100101

update b
set b.[项目名称] = a.[项目名称]+'_'+b.[项目名称]
from @tb a inner join @tb b on a.[项目号]=b.[上节点项目号]
where a.上节点项目号 is null

select * from @tb

--测试结果:
/*
序号 项目号 项目名称 上节点项目号
----------- ----------- ---------------------------------------- -----------
1 100101 外国人签证费 NULL
2 10010101 外国人签证费_零次、一次签证 100101
3 10010102 外国人签证费_二次签证 100101
4 10010103 外国人签证费_签证延期 100101
5 10010104 外国人签证费_半年(含半年)多次签证 100101

(5 row(s) affected)

*/
xuzhifang 2009-12-02
  • 打赏
  • 举报
回复
走过
华夏小卒 2009-12-02
  • 打赏
  • 举报
回复
---------------------------------------------
--> 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 行受影响)

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧