|
안녕하세요?
지금 사용하고 잇는 오라클 버전은 11g 입니다.
오라클에서 order by를 이용해서 정렬 순서를 숫자->한글->영어 순으로 하고자 합니다. 그냥 sql을 작성하여
order by에 정렬시키려는 컬럼명을 가지고 실행시켰더니, 숫자->영어->한글 순으로 정렬이 됩니다.
인터넷을 뒤지다 보니 order by convert(컬럼명, 'VN8VN3') 를 사용하면 된다고 하더라구요... 데이터 갯수가
작을 때는 원하는 순서 (숫자->한글-> 영어 ) 로 결과가 나왔습니다. 그런데 데이터 갯수가 많은 경우에는
숫자 다음에 한글이 오기는 하는데, 한글 정렬이 제대로 안되는 것처럼 결과가 출력되었습니다.
어떻게 하면 결과를 제대로 가져올 수 있을까요?
--- 테스트 예제
1번째 간단 테스트
select a
from (
select '101동' a
from dual
union all
select '102동'
from dual
union all
select '901동'
from dual
union all
select '가경E편한세상아파트'
--select '가'
from dual
union all
select '가경뜨란채아파트'
from dual
union all
select 'ABC아파트'
from dual
)
ORDER BY CONVERT(a,'VN8VN3')
결과 (원하는 대로 숫자->한글->영어 순으로 정렬되는 것 같습니다.)
-------------------------
101동
102동
901동
가경뜨란채아파트
가경E편한세상아파트
ABC아파트
2. 실제 테스트시..
select A.*
from (
select poi_id, poiname, detail
from poi_sd_rt
where rownum<10000
) A
order by convert(poiname, 'VN8VN3');
실행결과... 일부 (poi_sd_rt 에는 약 4백3십만건의 데이터가 있습니다.. 그중에서 10000개를 가지고
테스트한 결과입니다.)
6715 1.2병동 0
6706 3.5병동 0
4170 3H 0
5155 6병동 0
495 윌 0
6160 켐 0
5503 월 0
7015 꿈 0
10335 윈 0
207 제2기숙사 0
368 낭띠 0
382 남원 0
392 뷰토 0
400 세원 0
401 한서 0
417 제삼 0
418 타오 0
431 두원 0
437 초가 0
453 기가 0
475 원산 0
477 디큐 0
73 픽슨 0
처럼 나옵니다... 즉 한글이 제대로 정렬이 안됩니다.
==============================
미리 답변에 감사드립니다.
즐거운 하루가 되시길...
|