Searched by NAVER

알티베이스강좌  :  큐브리드강좌  :  오라클강좌  :  오라클팁  :  오라클사용자팁  :  Oracle Blogs  :  오라클Q&A  :  오라클자료실  :  IT컬럼/소식  :  좋은글감동  :  방명록
Oracle 질문과 답변 oracleclub.com
정렬순서를 숫자-> 한글->영어 순으로 하려고 하면 어떻게 해야 하나요?
손님 : 2009-09-17 13:20  
분류 : Query 주소복사

안녕하세요?

지금 사용하고 잇는 오라클 버전은 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

처럼 나옵니다... 즉 한글이 제대로 정렬이 안됩니다.

==============================

미리 답변에 감사드립니다.

즐거운 하루가 되시길...

조회수 1859,  추천수 0
글 등 록 글 답 변 글 수 정 목록보기
※ 로그인하여 작성한 글만 삭제할 수 있습니다. 로그인
이름 쓰기
도움 주시는 곳