본문 바로가기

MSSQL

데이터 정렬 설정


MSSQL을 설치하다보면 중간단계중에 데이터 정렬 설정을 하는 부분이 나옵니다.

물론 서버, DB단과 테이블을 생성할때 각각의 필드에도 설정할 수 있습니다.

SELECT * FROM ::fn_helpcollations();  -- SQL Server에서 사용 가능한 데이터 정렬 목록을 반환 (Description 포함)

정렬 순서(접미사)

설명
_BIN
(이진)
이진 정렬, 대/소문자와 악센트를 구분, 가장 빠른 정렬 순서
이 옵션을 선택하지 않으면 SQL Server는 관련된 언어 또는 알파벳에 대해 사전에 정의된 정렬 및 비교 규칙을 따릅니다.
이 옵션을 선택하면 대/소문자 구분, 악센트 구분, 일본어 가나 구분 및 전자/반자 구분 옵션을 사용할 수 없습니다.
_BIN2
(이진 코드 포인트)
유니코드 데이터에 대한 유니코드 코드 포인트를 사용하여 SQL Server 테이블의 데이터를 정렬하고 비교합니다.
비유니코드 데이터의 경우 이진 코드 포인트에서는 이진 정렬과 동일한 비교를 사용합니다.
이진 코드 포인트 정렬 순서 사용 시의 이점은 정렬된 SQL Server 데이터를 비교하는 응용 프로그램에서 데이터를 재정렬할 필요가 없다는 점입니다. 결과적으로 이진 코드 포인트 정렬 순서를 사용하면 응용 프로그램을 더 간단하게 개발할 수 있으며 성능이 향상될 수 있습니다. (2005 이상)
이 옵션을 선택하면 대/소문자 구분, 악센트 구분, 일본어 가나 구분 및 전자/반자 구분 옵션을 사용할 수 없습니다.
_CS
(대/소문자 구분)
대/소문자를 구분합니다. 이 정렬 순서를 선택하면 소문자가 대문자보다 먼저 정렬됩니다.
_AS
(악센트 구분)
악센트가 있는 문자와 악센트가 없는 문자를 구분합니다. 예를 들어 'a'는 'ấ'와 같지 않습니다.
이 옵션을 선택하지 않으면 SQL Server는 정렬할 때 악센트가 있는 문자와 악센트가 없는 문자가 동일한 것으로 간주.
_KS
(가나 구분)
일본어 가나 문자의 두 가지 유형인 히라가나와 가타가나를 구분하도록 지정합니다.
이 옵션을 선택하지 않으면 SQL Server는 정렬할 때 히라가나와 가타가나가 동일한 것으로 간주합니다.
_WS
(전자/반자 구분)
같은 문자라도 싱글바이트 문자와 더블바이트 문자를 구분합니다.
이 옵션을 선택하지 않으면 SQL Server는 정렬할 때 싱글바이트와 더블바이트로 표시된 같은 문자를 동일한 것으로 간주

악센트 구분 쿼리 예
SELECT 1 WHERE N'a' COLLATE Korean_Wansung_CS_AI = N'ấ' COLLATE Korean_Wansung_CS_AI
SELECT 1 WHERE N'a' COLLATE Korean_Wansung_CS_AS = N'ấ' COLLATE Korean_Wansung_CS_AS