我在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