- ROWNUM 함수는 ORDER BY 함수를 같이 사용하면 순번이 뒤죽박죽 된다.
💡 why ? 순번을 매긴 후에 order by 정렬을 하기 때문에
이 문제를 해결하기 위한 방법
- 서브쿼리에서 먼저 정렬 후 순번 매기기
SELECT
ROWNUM,--순번매기기
A.PRODUCT_NAME,
A.STANDARD_COST
FROM
(
SELECT
*
FROM
PRODUCTS
ORDER BY STANDARD_COST --서브쿼리내에서 정렬
)A
2. ROW_NUMBER() 함수 사용
SELECT
ROW_NUMBER() OVER (ORDER BY A.STANDARD_COST) AS NUM, --그룹별 순번
A.PRODUCT_NAME,
A.STANDARD_COST
FROM
PRODUCTS A
💡 ROW_NUMBER은 파티션으로 분할 된 그룹별로 각 로우에 대한 순번을 반환하는 함수
'DB' 카테고리의 다른 글
| [Oracle] DECODE 함수 (0) | 2022.12.05 |
|---|---|
| [Oracle]콤마로 분리된 문자열 여러 행으로 변환하기 (0) | 2022.11.15 |
| 컬럼명으로 테이블 찾기 (0) | 2022.10.24 |
| FETCH / OFFSET (0) | 2022.10.24 |
| COALESCE (0) | 2022.10.24 |