-1
次のCTEクエリがあり、期待どおりに行が順序付けられていない理由がわかりません。それは州とその郡を発注しています。私は親の状態の後に正しい子供の郡が現れるようにしようとしています。だからそれはAlabama、Autauga、Alaska、Aleutians Eastでなければなりません。SQL ServerのCTEクエリで期待通りに行が順序付けされていません
私は間違っていますか?ありがとう!!
WITH Descendants AS
(
SELECT
p.Page, p.MetaDataID, 0 AS HLevel, p.ParentID, p.OrderNumber
FROM
dbo.MetaData p
WHERE
p.ParentID IS NULL
UNION ALL
SELECT
p.Page, p.MetaDataID, H.HLevel+1, p.ParentID, p.OrderNumber
FROM
dbo.MetaData p
INNER JOIN
Descendants H ON H.MetaDataID = p.ParentID
)
SELECT d.MetaDataID, d.[Page], d.ParentID
FROM Descendants d
ORDER BY d.OrderNumber, d.[Page]
d.OrderNumber(選択リストにないコラム...と表示されています)では、現在の結果が間違った順序であることをどのように伝えることができますか? – jarlh
'ORDER BY d.OrderNumber' – vaso123
あなたは' order by'が正しく動作することを100%確信できます。列「OrderNumber」を取得するロジックが間違っている可能性があります。その列を追加して、返される内容を選択します。たぶん、 'p.OrderNumber'ではなく' h.OrderNumber'が必要でしょうか? –