【问题标题】:get child items of a recursive table in sql在sql中获取递归表的子项
【发布时间】:2014-10-19 10:26:02
【问题描述】:

我有一个包含一些级别(最多 5 级)的表,如下所示。我想创建一个获取一些 id 并返回项目及其子项的过程......我不知道如何处理它! (当 refid 为 1 时,表示该节点是第一级的父节点)

【问题讨论】:

标签: stored-procedures sql-server-2012 recursive-query hierarchical-query


【解决方案1】:
    DECLARE @Table TABLE(
    ID INT,
    ParentID INT,
    NAME VARCHAR(20)
)

INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 1, NULL, 'A'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 2, 1, 'B-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 3, 1, 'B-2'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 4, 2, 'C-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 5, 2, 'C-2'


DECLARE @ID INT

SELECT @ID = 2

;WITH ret AS(
        SELECT  *
        FROM    @Table
        WHERE   ID = @ID
        UNION ALL
        SELECT  t.*
        FROM    @Table t INNER JOIN
                ret r ON t.ParentID = r.ID
)

SELECT  *
FROM    ret

【讨论】:

    猜你喜欢
    • 2010-10-06
    • 1970-01-01
    • 2014-04-17
    • 2020-03-22
    • 2020-11-08
    • 1970-01-01
    • 2011-03-18
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多