メイン リーフとサブ リーフを検索する CTE クエリがあります。しかし、2人の兄弟の間で葉の選択順序を制御するのに問題があります:
テーブルの各行は次のように宣言されます。
(childID INT ,parentID INT ,NAME NVARCHAR(30),location int)
location
彼らが兄弟であるIFFをソートする優先順位はどこですか。
そして、私はこのツリー構造を持っています: これらのペアには場所の優先順位があります:
例えば :
`a` ( location=1) should be before `f` (location=2)
`b` ( location=1) should be before `e` (location=2)
`d` ( location=1) should be **before** `c` (location=2)
問題は、正しい構造 ( sibling unsorted ) を確認するために最初 にやらなければならないように思われることです。order by
childID
しかし、正しい構造 ( && sibling sortedorder by
)を確認できるようにするには、どのように表示する必要がありますか?
(私の例では:d
前に来る必要がありますc
)
これは、すべてのツリー リーフ (ソートされていない兄弟) を生成する作業クエリです。
pschildID
は、並べ替えについて何も示していません。それは単なるプレースホルダーです。私が言ったように、2人の兄弟の間の位置はlocation
列です.(ここでは、行を挿入した順序であるため、childIdはソートされています...