SQL Server 2008 のテーブルに hierarchyid 列が定義されています
最初の行で、hierarchyid が「/1/7/1/」であるとします。
2 行目で、hierarchyid が「/1/10/1/」であるとします。
Isort by hierarchyid ASC
の場合、2 行目が表示され、次に最初の行が表示されます。(ソートは文字列順、'10'<'7')
ただし、(別のシステムとの互換性の理由から) 最初の行を最初に表示し、次に 2 番目の行を表示したい (つまり、int で並べ替え、7<10)
2番目のhierarchyid列を定義し、最初のhierarchyid列と同じに設定することで問題を解決しましたが、内部のすべてのスラッシュをドットに置き換えてから、これで並べ替えを行いました。
もっとエレガントな方法があるのだろうかと思っただけです。