我在 SQL Server 2008 的表上定义了一个 hierarchyid 列
假设在第一行,hierarchyid 是 '/1/7/1/'
假设在第二行,hierarchyid 是 '/1/10/1/'
如果 I sort by hierarchyid ASC
,那么我将看到第二行,然后是第一行。(排序将按String排序,并且'10'<'7')
但是我(出于与不同系统的兼容性原因)希望先查看第一行,然后查看第二行(即按 int 排序,并且 7<10)
我已经解决了这个问题,通过定义第二个 hierarchyid 列,然后将其设置为与第一个 hierarchyid 列相同,但用点替换所有内部斜线,然后按此排序。
我只是想知道是否有更优雅的方式。