TIP게시판

제목 MS SQL 문자열 정렬 기준 정하기.
글쓴이 들국화 작성시각 2015/09/07 15:21:02
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 18578   RSS
ms sql은 기본적으로 collation에 의해서 정렬 기준이 정해 진다고 하네요.
찾아보니 한글은 기본적으로 Korean_Wansung_CI_AS 인데.. NVarchar 형이라 그런지 구글링 해서 나온것들이 제대로 동작을 안하네요.

그래서 조금 부담은 되지만 가장 쉬운 방법으로 정렬 했습니다.
원하는 형태는 한글-영어-숫자 순 입니다.
 
SELECT * FROM table ORDER BY case when name  like '[0-9]%' then 3 when name like '[A-Za-z]%' then 2 else 1 end, name 
마지막에 한번더 name을 써준 이유는 한글-영어-숫자 순으로는 정렬이 되는데.. 한글끼리, 영어끼리, 숫자끼리 순은 안맞네요 그래서 한번더 정렬.

sql문은 타 dbms도 유사해서 응용이 가능 할것 같네요.^^
 다음글 서버 점검용 Ping (2)
 이전글 [어리버리 팁] 디버깅 라이브러리 사용시, ajax 처... (2)

댓글

한대승(불의회상) / 2015/09/07 17:16:29 / 추천 0
mysql 에서도 종종 한글,영어,숫자 순서로 정렬해야 할 때가 있는데 응용해 봐야 겠네요.
좋은 정보 감사 합니다.
당근병아리 / 2015/09/30 13:33:54 / 추천 0
오호 좋은 정보 감사합니다.