Sqlserver with的递归用法

阅读 68

2022-03-12

SELECT  *
INTO    #DiGui
FROM    (SELECT 8 AS Id,
                5 AS ParentId
         UNION
         SELECT 15,
                5
         UNION
         SELECT 30,
                15
         UNION
         SELECT 23,
                15
         UNION
         SELECT 42,
                30
         UNION
         SELECT 39,
                30
         UNION
         SELECT 53,
                39
         UNION
         SELECT 67,
                39
         UNION
         SELECT 88,
                39
         UNION
         SELECT 107,
                39) AS T

WITH    temp([Id],[parentid])
          AS (SELECT    Id,
                        parentid
              FROM      #DiGui
              WHERE     [parentid]=15
              UNION ALL
              SELECT    a.Id,
                        a.parentid
              FROM      #DiGui a
              INNER JOIN temp
              ON        a.[parentid]=temp.[Id])
    SELECT  *
    FROM    temp

精彩评论(0)

0 0 举报