티스토리 뷰


 데이터정렬 ??

 

 

 쿼리 작성중에 바로 아래와 같은 데이터의 정렬로 인해 고민한 적이 

있었다. 


가나다(ㄱ)

가나다(A)

가나다(B)


기본적으로 데이터정렬을 한다고 머리속에서 생각을 해보자면, 


1. 가나다(A)

2. 가나다(B)

3. 가나다(ㄱ)


이라고 정리가 되어진다. 

영문 먼저 그리고 한글이 나온다.


하지만, MSSQL 쿼리분석기로 데이타를 정렬(order by) 해보면,

아래와 같이 예상외로 데이터정렬이 되는것을 확인 할 수 있다.

 

1.가나다(ㄱ)

2.가나다(A)

3.가나다(B)


한글 먼저 그리고 영문이 나온다.

이유는 바로 데이타베이스의 기본 데이터정렬 속성이 Korean_Wansung_CI_AS 이기 때문이다.


그렇다면, 쿼리시 영문 먼저 나오고 한글이 나오도록 할 수 있는 방법이 없을까?


이번 포스팅에서는 강제적으로 데이터정렬 속성을 변경하여 원하는 데이터정렬값을 가져오는 방법에 대해 설명해보겠다.


도움이 되셨다면 추천을~~^^*


 

 

 영문 > 한글 우선 데이터정렬 순서 변경하기

 

 

예를 들어 아래와 같은 쿼리로 간단히 설명해보기로 하겠다.


아래 그림은 쿼리분석기에서 '가나다(ㄱ)','가나다(A)','가나다(B)' 라는 문자열을 만들어 오름차순으로 정렬을 해본 모습이다.

위에서 설명한 것과 같이 결과는 


1.가나다(ㄱ)

2.가나다(A)

3.가나다(B)


머리속에서 생각하던 것과는 다른 결과이다. 헉


---------------------------------------------------

---------------------------------------------------





아래 그림은 쿼리분석기에서 '가나다(ㄱ)','가나다(A)','가나다(B)' 라는 문자열을 만들어 COLLATION 강제적으로 적용 시켜 

데이타 정렬을 해본 모습이다.

 결과는 ?


1. 가나다(A)

2. 가나다(B)

3. 가나다(ㄱ)



우리가 원하던 데이터정렬순으로 결과값이 나온것을 확인 할 수 있다.  오키


COLLATE Korean_Wansung_BIN


---------------------------------------------------

---------------------------------------------------


 

COLLATION 확인법

------------------------------------------

SELECT * FROM ::FN_HELPCOLLATIONS()

------------------------------------------


그럼 이것으로 이번 포스팅을 마무리하겠습니다.


도움이 되셨다면 추천 눌러주시는거 아시죠? ㅎㅎ


 

댓글