내가 2008정렬이
우리가 첫 번째 행에서 그런 말을하자 SQL 서버의 테이블에 정의 된 HIERARCHYID 열이의 HIERARCHYID는 '/ 7분의 1/1 /'
입니다두 번째 행에서 hierarchyid는 '/ 1/10/1 /'입니다.
내가 sort by hierarchyid ASC
인 경우 두 번째 행이 표시되고 첫 번째 행이 표시됩니다. (정렬은 문자열별로 정렬되며 '10'< '7')
그러나 나는 (다른 시스템과의 호환성을 이유로) 첫 번째 행을 먼저보고 싶습니다. int로 정렬하고 < 10)
두 번째 hierarchyid 열을 정의한 다음 첫 번째 hierarchyid 열과 동일하게 설정하지만 모든 내부 슬래시를 점으로 바꾼 다음 문제를 해결했습니다. 이것으로 정렬하고있다.
나는 더 우아한 방법이 있는지 궁금해했습니다.
[hierarchyid] (http://technet.microsoft.com/en-us/library/bb677290.aspx)를 사용하고 있습니까? 솔기가 예상대로 작동합니다. 보십시오 [여기] (http://sqlfiddle.com/#!3/d7cfe/2). –
당신이 옳습니다 (그나저나 멋진 링크). 내가 뭘 잘못했는지 확인해야 할 것입니다. (hierarchyID를 사용하고 있습니다 만 다른 요인이있을 수 있습니다) – gordon613