私はSQL Server 2008で作業しています。私の質問に対する答えは再帰的なCTEにあると思いますが、どのような解決策も高く評価されます。 sam_DB.dbo.exampleテーブルで再帰的CTEを使用したSQLグループ
PIDがnullでない場合、それは私が私の出力は、Aの各レコードを識別する新しいフィールド(CID)を持ちたいID
ID | PID
------ | ------
1 | NULL
2 | 1
3 | 2
4 | 3
5 | NULL
6 | 5
7 | 6
8 | NULL
9 | NULL
10 | 9
に戻ってリンクを下回ります以下のように、グループの一部としてPIDからIDへの連鎖の連鎖。
ID | PID | CID
------ | ------ | ------
1 | NULL | 1
2 | 1 | 1
3 | 2 | 1
4 | 3 | 1
5 | NULL | 2
6 | 5 | 2
7 | 6 | 2
8 | NULL | 3
9 | NULL | 4
10 | 9 | 4