반응형
ROWNUM으로 채번을 할때 ORDER BY를 사용하는 경우 확인해야 될 사항에 대해 적어본다!
1. 테스트 테이블 데이터
2. ROWNUM 사용 (정렬 X)
SELECT
ROWNUM
,ID
,NAME
FROM SAMPLE
3. ROWNUM 사용 + ORDER BY 사용, NAME 오름차순 정렬
1) SELECT 문에 바로 ROWNUM 과 ODER BY 동시 사용
SELECT
ROWNUM
,ID
,NAME
FROM SAMPLE
ORDER BY NAME ASC
2) ODER BY 로 선 정렬한뒤 SELECT 하면 ROWNUM 사용
SELECT
ROWNUM
,A.*
FROM
( SELECT
ID
,NAME
FROM SAMPLE
ORDER BY NAME ASC ) A
3-1번 처럼 ROWNUM과 ORDER BY를 같이 사용할 경우
2번 처럼 SELECT를 실행해 ROWNUM을 채번한 후 ORDER BY를 사용해 NAME 순으로 정렬하기때문에
ROWNUM 순서가 뒤죽박죽되어버린다.
ORDER BY와 ROWNUM을 같이 사용하려면 3-2번 처럼
정렬을 먼저(ORDER BY)한 후 그 데이터값에 ROWNUM을 사용하여야 한다!
이런 이유는 아래 처럼 SELECT문 실행 순서에서 정렬이 마지막이기 때문이다!!
- SELECT 실행 순서
- FROM : 테이블 확인
- ON : 조인 조건 확인
- JOIN : 테이블 조인
- WHERE : 데이터 필터링 조건 확인
- GROUP BY : 데이터 그룹화
- HAVING : 그룹화 이후 데이터 조건 확인
- SELECT : 데이터 추출
- DISTINCT : 중복 제거
- ORDER BY : 정렬
https://madinthe90.tistory.com/27
반응형
'DB > ORACLE' 카테고리의 다른 글
[ORACLE] 특정 컬럼 기준으로 중복데이터 제거 (ROW_NUMBER() OVER(PARTITION BY _ ORDER BY _)) (0) | 2023.05.03 |
---|---|
[ORACLE] 주말과 공휴일 제외한 근무일(평일) 날짜 구하기(CONNECT BY LEVEL) (1) | 2022.09.20 |
[ORACLE] INSERT시 컬럼 SEQ 증가 (NVL(MAX(SEQ),0) + 1) (0) | 2022.04.18 |
[ORACLE] WHERE절에 IN 사용 (0) | 2022.04.04 |
[ORACLE] 전체 테이블 조회, 코멘트 조회 (0) | 2022.03.30 |
댓글