階層ID値を、辞書式順序が自然な深さ優先の順序を維持する文字列に変換する、合理的でパフォーマンスの高い方法があるかどうか疑問に思います。
ありがとう!
階層ID値を、辞書式順序が自然な深さ優先の順序を維持する文字列に変換する、合理的でパフォーマンスの高い方法があるかどうか疑問に思います。
ありがとう!
以下のコード (AdventureWorks2008 で実行) に従って、スタイル 1 を使用して、varbinary に変換してから nvarchar に変換できます。スタイル 1 がないと、正しく順序付けされません。
select convert(nvarchar(20),convert(varbinary(20),OrganizationNode,1),1)
as OrderableString,
OrganizationNode.ToString() as ReadableString,
convert(nvarchar(20),OrganizationNode) as ReadableString2
from humanresources.employee
order by strNode;
これからの順序の一部は次のとおりです。
OrderableString ReadableString ReadableString2
0x7AD744 /3/1/1/8/ /3/1/1/8/
0x7AD74C /3/1/1/9/ /3/1/1/9/
0x7AD754 /3/1/1/10/ /3/1/1/10/
0x7AD75C /3/1/1/11/ /3/1/1/11/
0x7AD764 /3/1/1/12/ /3/1/1/12/
0x7ADA /3/1/2/ /3/1/2/
0x7ADAB0 /3/1/2/1/ /3/1/2/1/
0x7ADAD0 /3/1/2/2/ /3/1/2/2/