[ORACLE] 숫자 정렬(ORDER BY)가 제대로 되지 않을 때 - 숫자 정렬 오류

 

 아래 내용의 예제는 SEQ값이 (0~99)인 예제 테이블에서 진행되었습니다.


1. 현상

 일반적이라면 1부터 오름차순으로 정렬되어야 하겠지만, 기준이 아래와 같이 의도했던 바와 상이한 경우 입니다.

실행쿼리 : SELECT * FROM TEST ORDER BY SEQ;



2. 원인 및 해결방안

 보통 이런 경우는 정렬기준인 컬럼 타입이 NUMBER가 아닌 VARCHAR형이기 때문인데요,

문자단위로 정렬을 했기 때문에 위 현상과 같이 앞 문자단위로 정렬된 것입니다.


 이런 경우 숫자형 타입변환 후 정렬하면 쉽게 해결 할 수 있습니다.

SELECT * FROM TEST ORDER BY to_number(SEQ) ;






1 댓글

  1. 감사합니다. 덕분에 빨리 해결할 수 있었어요!

    답글삭제