[英]How can I write a procedure for …?
DECLARE @ID bigint = 7
DECLARE @table TABLE
(
id bigint,
name nvarchar(2),
parentid bigint
)
INSERT INTO @table
VALUES (1, 'a', 0), (2, 'b1', 1), (3, 'b2', 1),
(4, 'c1', 2), (5, 'c2', 2), (6, 'd1', 3),
(7, 'd2', 3)
--This part goes into the procedure
;WITH cte AS
(
SELECT
id, name, parentid
FROM
@table --change table name to yours
WHERE
id = @ID
UNION ALL
SELECT
t.*
FROM
cte c
INNER JOIN
@table t ON c.parentid = t.id
)
SELECT *
FROM cte
ORDER BY id ASC
OPTION (MAXRECURSION 100)
输出:
id name parentid
---- ---- ---------
1 a 0
3 b2 1
7 d2 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.