递归sql查询T-SQL

Pra*_*tik 4 sql t-sql

我们如何在T-SQL中编写递归sql查询?你能给出一个这样的递归sql查询的简单例子吗?

Jac*_*sch 5

这是一个独立的例子.

Declare @Temp table
(
    ID int,
    ParentID int,
    Happened date,
    Value int
)
Insert into @Temp Values
    (1, null, dateadd(day,1,GetDate()),1),
    (2, 1, dateadd(day,2,GetDate()),2),
    (3, 1, dateadd(day,3,GetDate()),3),
    (4, null, dateadd(day,4,GetDate()),10),
    (5, 3, dateadd(day,5,GetDate()),50),
    (6, 4, dateadd(day,5,GetDate()),50),
    (7, 5, dateadd(day,5,GetDate()),90);
----------------------------------------

with Magic as
(
    select *
    from @Temp
    Where ID = 1

    union all

    select t.*
    from
        Magic m
        inner join
        @Temp t
            on t.ParentID = m.ID
)

select * from Magic
option (maxrecursion 3)
Run Code Online (Sandbox Code Playgroud)