검색문자열이 아래와 같이 3개가 있다고 하면
가가가
가가-나
가가다
가나다 순으로 정렬할경우
가가가
가가다
가가-나
이렇게 나와야 하는 거 아닌가요?
그런데 실제로 sql에서 보면
가가가
가가-나
가가다
와 같이 특수문자(-) 는 무시하고 정렬을 하는 것 같습니다.
ms-sql 에서 원래 이렇게 처리가 되는건가요?
다르게 정렬할 방법은 없을까요?
검색문자열이 아래와 같이 3개가 있다고 하면
가가가
가가-나
가가다
가나다 순으로 정렬할경우
가가가
가가다
가가-나
이렇게 나와야 하는 거 아닌가요?
그런데 실제로 sql에서 보면
가가가
가가-나
가가다
와 같이 특수문자(-) 는 무시하고 정렬을 하는 것 같습니다.
ms-sql 에서 원래 이렇게 처리가 되는건가요?
다르게 정렬할 방법은 없을까요?
with res as (
select '가가가' txt union all
select '가가-나' union all
select '가가다' )
select *
from res order by txt collate Korean_Wansung_bin asc
용어
옵션값
설명
이진
_BIN
각 문자에 대해 정의된 비트 패턴을 기준으로 데이터를 정렬 및 비교하려면 이 데이터 정렬을 선택합니다. 이진 정렬 순서는 대/소문자(소문자가 대문자 앞에 와야 함) 및 악센트를 구분합니다. 이것은 가장 빠른 정렬 순서입니다.
이 데이터 정렬을 선택하면 대/소문자 구분, 악센트 구분, 일본어 가나 구분 및 전자/반자 구분 옵션을 사용할 수 없습니다.
이진2
_BIN2
각 문자에 정의된 비트 패턴에 따라 데이터 데이터를 정렬 및 비교하려면 이 데이터 정렬을 선택합니다. 이진 정렬 순서는 대/소문자(소문자가 대문자 앞에 와야 함) 및 악센트를 구분합니다. 이것은 가장 빠른 정렬 순서입니다.
이 데이터 정렬을 선택하면 대/소문자 구분, 악센트 구분, 일본어 가나 구분 및 전자/반자 구분 옵션을 사용할 수 없습니다.
대/소문자 구분
_CS(O)
_CI(X)
대문자와 소문자를 구분하려면 이 옵션을 선택합니다.
악센트 구분
_AS(O)
_AI(X)
악센트가 있는 문자와 악센트가 없는 문자를 구분하려면 이 옵션을 선택합니다. 예를 들어 'a'와 'á'는 같지 않습니다.
일본어 가나 구분
_KS
두 가지 유형의 일본어 가나 문자를 구분하려면 이 옵션을 선택합니다. 히라가나와 가타가나를 구분하도록 지정합니다.
전자/반자 구분
_WS
단일 바이트 문자(반자)와 더블바이트 문자로 표시될 때의 동일한 문자(전자)를 구분하려면 이 옵션을 선택합니다.