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

cteを使用して隣接するリスト階層をクエリおよび解析する方法は?

    あなたのサンプルデータは質問をより明確にします。下に降りると、マネージャーのレベルを集めることができます:

    <プレ>; with Tree as ( SELECT empid , mgrid , 1 as lv , 1 as level1 , null as level2 , null as level3 , null as level4 , null as level5 FROM Employees WHERE mgrid IS NULL UNION ALL SELECT E.empid , E.mgrid , T.lv + 1 , T.level1 , case when T.lv = 1 then E.empid else t.level2 end , case when T.lv = 2 then E.empid else t.level3 end , case when T.lv = 3 then E.empid else t.level4 end , case when T.lv = 4 then E.empid else t.level5 end FROM Employees AS E JOIN Tree T ON E.mgrid = T.empid ) select * from Tree

    SQL Fiddle での例



    1. MySQLのタイプに関する質問

    2. NLTKはPostgresPythonストアドプロシージャで使用できますか

    3. テーブル内の最新の3つの日付を検索するMySQLクエリ

    4. mysql(ほぼ)完全な監査