SQL Server CTE查询未按预期排序行

时间:2017-12-11 15:42:21

标签: sql sql-server

我有以下CTE查询,无法弄清楚为什么行没有像我期望的那样排序。它命令州和县。我正试图让正确的子县在其父州之后出现。所以它应该是Alabama,Autauga,Alaska,Aleutians East。

我做错了什么?谢谢!

Table

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]

enter image description here

1 个答案:

答案 0 :(得分:-1)

决定不将查询构建为父/子。谢谢你的帮助