오라클 숫자와 문자 데이터 정렬 질문입니다. 채택완료
스니음
2년 전
조회 2,216
SELECT * test_tb order by CODE_NM
이렇게 쿼리를 했을때
1.칼
10.방패
11.자동차
12.호랑이
2.집
3.컴퓨터
4.의자
5.책상
6.가방
7.인벤
8.연필
9.볼펜
이렇게 정렬이 되업버립니다. 이걸
1.칼
2.집
3.컴퓨터
4.의자
5.책상
6.가방
7.인벤
8.연필
9.볼펜
10.방패
11.자동차
12.호랑이
이렇게 정렬을 하려면 어떻게 해야 하나요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
2년 전
원하는 순서로 데이터를 정렬하려면 Oracle 데이터베이스에서 다음 SQL 쿼리를 사용할 수 있습니다.
SELECT * test_tb에서 ORDER BY TO_NUMBER(REGEXP_SUBSTR(CODE_NM, '^\d+')), CODE_NM;
이 쿼리는 먼저 정규식을 사용하여 CODE_NM 열에서 선행 숫자를 추출하고 TO_NUMBER 함수를 사용하여 숫자로 변환한 다음 먼저 이 숫자를 기준으로 행을 정렬한 다음 원래 CODE_NM 값을 기준으로 행을 정렬합니다.
그게아니라면, 해당 code_nm 필드의 데이터타입이 int가 맞는지 확인도 해보시기바랍니다.
만약 int가 아니라면 int로 변경도 해보세요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
스니음
2년 전
오~ 됩니다. 감사합니다. ^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인