아래 내용의 예제는 SEQ값이 (0~99)인 예제 테이블에서 진행되었습니다.
1. 현상
일반적이라면 1부터 오름차순으로 정렬되어야 하겠지만, 기준이 아래와 같이 의도했던 바와 상이한 경우 입니다.
실행쿼리 : SELECT * FROM TEST ORDER BY SEQ;
2. 원인 및 해결방안
보통 이런 경우는 정렬기준인 컬럼 타입이 NUMBER가 아닌 VARCHAR형이기 때문인데요,
문자단위로 정렬을 했기 때문에 위 현상과 같이 앞 문자단위로 정렬된 것입니다.
이런 경우 숫자형 타입변환 후 정렬하면 쉽게 해결 할 수 있습니다.
SELECT * FROM TEST ORDER BY to_number(SEQ) ;
1 댓글
감사합니다. 덕분에 빨리 해결할 수 있었어요!
답글삭제