BACKEND/MSSQL

MSSQL :: 데이터 정렬(COLLATE)

neeon 2024. 4. 25. 15:45
728x90

SQL Server의 데이터 정렬은 데이터에 대한 정렬 규칙과 대/소문자 및 악센트 구분 속성을 제공한다.

 

서버, DB, 열 또는 식의 데이터 정렬을 선택하게 되면 데이터에 특정 특성이 할당되게 된다. 

이런 특성은 여러 DB 작업의 결과에 영향을 주는데.. 예를 들어 Order by를 사용하여 쿼리를 만든 경우, 결과 집합의 정렬 순서는 쿼리의 식 수준에서 Collate 절에 지정되거나 DB에 적용된 데이터 정렬에 따라 달라지게 됨.

 

지원하는 언어

SELECT * FROM sys.fn_helpcollations()

 

위의 쿼리로 지원하는 언어 SET 의 종류를 확인해볼 수 있다. 총 5,540건.

 

이 중 Korean으로 시작되는 정렬 문자열에 대해 알아보자.!!

 

Korean과 관련되는 언어SET

SELECT * FROM sys.fn_helpcollations() WHERE NAME LIKE 'Korean_%'

 

위의 쿼리로 확인해보면 Korean 과 관련된 언어셋 종류에는 크게 90, 100, Wansung 이 있다.

 

조회해보면 . . 뒤에 C A K W S I 등 알파벳이 붙는 것을 볼 수 있다.

Koran_Wansung_CI_AS 같은 형태를 띔.

 

뒤에 붙는 알파벳의 의미는 뭘까..?

 

뒤에 붙는 알파벳의 의미?

 

S 와 I

S 는 Sensitive로 활성화를 의미.

I 는 Insensitive로 비활성화를 의미.

 

C A K W 와 S I

앞문자 뒷문자 discription
C (대소문자 구분) S 소문자가 대문자보다 먼저 정렬 
  I 대소문자를 구분하지 않고 정렬
A (악센트 구분) S 악센트를 구분하여 정렬
  I 악센트를 구분하지 않고 정렬
K (히라가나/가타가나 구분) S 히라가나와 가타가나를 구분하여 정렬
  I 히라가나와 가타가나를 구분하지 않고 정렬
W (전각/반각 구분) S 전각과 반각 문자를 구분하여 정렬
  I 전각과 반각 문자를 구분하지 않고 정렬

 

 

 

 

 

 

728x90