728x90
1.ROWNUM
조회된 순서되로 순번을 매긴다.
SELECT ROWNUM, A.*
FROM empTable A
ROWNUM | empNo | empName | empJob |
1 | 684123 | 노나나 | 변호사 |
2 | 754349 | 김가경 | 변호사 |
3 | 123873 | 두도담 | 회계사 |
4 | 782645 | 맹무민 | 회계사 |
5 | 962455 | 류리리 | 회계사 |
ORDER BY를 사용하면 순번이 섞일수 있어서 정렬된 서브쿼리 결과에 ROWNUM을 사용해야된다.
SELECT ROWNUM, B.*
FROM (
SELECT A.*
FROM empTable A
ORDER BY A.empName
) B
ROWNUM | empNo | empName | empJob |
1 | 684123 | 김가경 | 변호사 |
2 | 754349 | 노나나 | 변호사 |
3 | 123873 | 두도담 | 회계사 |
4 | 782645 | 류리리 | 회계사 |
5 | 962455 | 맹무민 | 회계사 |
2. ROW_NUMBER()
ORDER BY 된 결과에 순번을 매길때는 ROWNUM 보다 ROW_NUMBER()함수가 더 편리하다.
SELECT ROW_NUMBER() OVER(ORDER BY A.empJop, A.empName) rowNum, A.*
FROM empTable A
ORDER BY A.empJop, A.empName
ROWNUM | empNo | empName | empJob |
1 | 684123 | 김가경 | 변호사 |
2 | 754349 | 노나나 | 변호사 |
3 | 123873 | 두도담 | 회계사 |
4 | 782645 | 류리리 | 회계사 |
5 | 962455 | 맹무민 | 회계사 |
그룹별(PARTITION)로 순번을 따로 부여할 수 있다.
SELECT ROW_NUMBER() OVER(PARTITION BY A.empJop ORDER BY A.empJop, A.empName) rowNum, A.*
FROM empTable A
ORDER BY A.empJop, A.empName
ROWNUM | empNo | empName | empJob |
1 | 684123 | 김가경 | 변호사 |
2 | 754349 | 노나나 | 변호사 |
1 | 123873 | 두도담 | 회계사 |
2 | 782645 | 류리리 | 회계사 |
3 | 962455 | 맹무민 | 회계사 |
반응형
SMALL
'공부 > Oracle Sql' 카테고리의 다른 글
[Sql] 올림,반올림,내림 관련 쿼리 (0) | 2023.02.13 |
---|---|
[SQL 기본] 관계형 데이터베이스 개요 (0) | 2022.12.25 |