[SQL] Oracle(오라클) 조회 순번 매기는 방법 (feat. ROWNUM, ROW_NUMBER() )

JoJo·2023년 8월 2일
0

💡 ROWNUM 키워드 이용하는 방법


  • 조회된 순서대로 순번을 매깁니다.
SELECT ROWNUM
		, a.*
	FROM EMP A

  • ORDER BY를 사용하면 순번이 뒤섞이므로 정렬된 서브쿼리 결과에 ROWNUM 을 매겨야 합니다.
SELECT ROWNUM
		, x.*
	FROM ( SELECT a.* FROM EMP A ORDER BY A.ENAME) x



💡 ROWNUM 키워드 이용하는 방법


  • ORDER BY 된 결과에 순번을 매길때에는 ROWNUM 보다 ROW_NUMBER() 함수가 더 편합니다.
SELECT ROW_NUMBER() OVER(ORDER BY A.JOB, A.ENAME) ROW_NUM
		, a.*
	FROM EMP A ORDER BY A.JOB, A.ENAEM

  • 그룹별(PARTITION)로 순번을 따로 부여할 수 있습니다.
SELECT ROW_NUMBER() OVER(PARTITION BY A.JOB, ORDER BY A.JOB, A.ENAME) ROW_NUM
		, a.*
	FROM EMP A ORDER BY A.JOB, A.ENAEM



✅ ROWNUM 예제


예제 1.

SELECT ROWNUM
		, a.*
	FROM EMP A


예제 2.

SELECT ROWNUM
		, x.*
	FROM ( SELECT a.* FROM EMP A ORDER BY A.ENAME) x



✅ ROWNUM 예제


예제 1.

SELECT ROW_NUMBER() OVER(ORDER BY A.JOB, A.ENAME) ROW_NUM
		, a.*
	FROM EMP A ORDER BY A.JOB, A.ENAEM


예제 1.

SELECT ROW_NUMBER() OVER(PARTITION BY A.JOB, ORDER BY A.JOB, A.ENAME) ROW_NUM
		, a.*
	FROM EMP A ORDER BY A.JOB, A.ENAEM

profile
꾸준히

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

좋은 글 감사합니다.

답글 달기