sql >> データベース >  >> RDS >> Sqlserver

t-sql 再帰クエリ

    これを行う CTE の例を次に示します。

    declare @t table (id int, name varchar(max), parentid int)
    
    insert into @t select 1,     'project'  , 0
    union all select 2,     'structure' , 1
    union all select 3,     'path_1'    , 2
    union all select 4,     'path_2'    , 2
    union all select 5,     'path_3'    , 2
    union all select 6,     'path_4'    , 3
    union all select 7,     'path_5'    , 4
    union all select 8,     'path_6'    , 5
    
    ; with CteAlias as (
        select id, name, parentid
        from @t t
        where t.parentid = 0
        union all
        select t.id, parent.name + '\' + t.name, t.parentid
        from @t t
        inner join CteAlias parent on t.parentid = parent.id
    )
    select * 
    from CteAlias
    


    1. Python:mysqlデータベースの変更に関する通知を取得する方法は?

    2. 特殊文字と数字を削除するためのより良い解決策が必要

    3. Oracleインスタンスのシャットダウンと起動

    4. 列の順序はMicrosoftSQLServer 2012のパフォーマンスに影響しますか?