오라클 숫자와 문자 데이터 정렬 질문입니다.

오라클 숫자와 문자 데이터 정렬 질문입니다.

QA

오라클 숫자와 문자 데이터 정렬 질문입니다.

답변 2

본문

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

원하는 순서로 데이터를 정렬하려면 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로 변경도 해보세요.

번호된 부분을 같은 컬럼으로 하지 마시고 번호만 별도로 컬럼의 형식을 int로 형식으로 적용하셔서 정렬하셔야 원하시는 방식으로 정렬이 가능합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 181
© SIRSOFT
현재 페이지 제일 처음으로