次のツリーがあるとします。
CREATE TABLE Tree(Id int, ParentId int, Name varchar(20), Level int)
INSERT INTO Tree(Id, ParentId, Name, Level)
SELECT 1, NULL, 'Bob', 0 UNION ALL
SELECT 2, 1, 'John', 1 UNION ALL
SELECT 3, 1, 'Bill', 1 UNION ALL
SELECT 4, 3, 'Peter', 2 UNION ALL
SELECT 5, 4, 'Sarah', 3
特定のレベルで特定のノードの祖先を見つけるスクリプトが必要です。
たとえば、レベル 2 のサラの祖先はピーターであり、レベル 0 のピーターの祖先はボブです。
階層 CTE を使用してこれを行う簡単な方法はありますか? sqlfiddle