简体   繁体   English

我该如何为…编写程序?

[英]How can I write a procedure for …?

My data is : 我的数据是:

在此处输入图片说明

My procedure code is: 我的过程代码是:

CREATE PROCEDURE SearchParent
    @ID bigint = 7
AS
BEGIN
    -- how write code to get data like picture down
END
GO

How do I return like data: 我如何像数据一样返回:

在此处输入图片说明

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)

Output: 输出:

id   name parentid
---- ---- ---------
1    a    0
3    b2   1
7    d2   3

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM