我在SQL Server上表中定義的HIERARCHYID列2008排序HIERARCHYID在SQL Server
讓我們說,在第一行中,該HIERARCHYID爲 '/ 1/7/1 /'
讓我們說在第二行中,hierarchyid是'/ 1/10/1 /'
如果我sort by hierarchyid ASC
,那麼我會看到第二行,然後是第一行。 (排序將按字符串排序,'10'<'7')
然而,我有(爲了兼容性的原因與一個不同的系統)首先希望看到第一行,然後第二行(Ie排序int和7 < 10)
我已經解決了問題,通過定義第二個hierarchyid列,然後將其設置爲與第一個hierarchyid列相同,但用點替換所有內部斜線,然後按此排序。
我只是想知道是否有更優雅的方式。
您確定您使用[hierarchyid](http://technet.microsoft.com/zh-cn/library/bb677290.aspx)?.接縫按預期工作。看看[這裏](http://sqlfiddle.com/#!3/d7cfe/2)。 – 2012-04-17 13:13:34
你是對的(順便說一下,很棒的鏈接)。我將不得不檢查我做錯了什麼......(我使用的是hierarchyID,但也許還有其他一些因素) – gordon613 2012-04-17 13:34:17