22,209
社区成员
发帖
与我相关
我的任务
分享
----------------------------------------------------------------
-- Author :fredrickhu(小F,向高手学习)
-- Date :2010-04-17 19:06:10
-- Version:
-- Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
-- Nov 24 2008 13:01:59
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([ID] int,[Username] varchar(5),[NextName] varchar(5))
insert [tb]
select 1,'name1','name2' union all
select 2,'name2','name3' union all
select 3,'name3','name4' union all
select 4,'name2','name5' union all
select 5,'name3','name6' union all
select 6,'name1','name7'
--------------开始查询--------------------------
;with f as
(
select * from [tb] where Username='name2'
union all
select a.* from [tb] a, f b where a.Username=b.NextName
)
select Username,NextName from f
----------------结果----------------------------
/* Username NextName
-------- --------
name2 name3
name2 name5
name3 name4
name3 name6
(4 行受影响)
*/