SQL2005循环递归列出子项

首先创建表:
CREATE TABLE [dbo].[tbUser](
 [UserId] [int] NOT NULL,
 [ParentUserId] [int] NOT NULL
) ON [PRIMARY]

 

往表内添加以下数据:
UserId   ParentUserId
1                   0
2                   11
3                    2
4                    1
5                    3
6                    4
7                    2
8                    2
10                  1
11                  1
12                  1
13                  10
14                  13
15                  14
16                  15
17                  16
18                  17
19                  18
20                  19

现要列出属于UserId=1的所有下级成员:

 

DECLARE @UserId INT
SET @UserId = 1
;WITH b
AS
(
SELECT * FROM tbUser WHERE UserId = @UserId
UNION ALL
SELECT a.* FROM b JOIN tbUser a ON b.UserId = a.ParentUserId
)
SELECT * FROM b ORDER BY UserId ASC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值