새소식

반응형
250x250
💾 Database/🥃 Oracle

[Oracle] rownum이란?

  • -
728x90
반응형

 정의

   ◽ 오라클에서 자체적으로 생성하는 가상의 컬럼

 

 용도

   ◽ select 절에서 사용 : 데이터에 순번을 부여할 때

   ◽ where 절에서 사용 : 조회 결과에서 일부 데이터만 추출할 때

 

SELECT ROWNUM, m.* FROM MEMBER m;

 

👉 데이터에 임의의 순번을 부여할 수 있음

 

SELECT * FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 5;

 

👉 조회 결과에서 일부 데이터만 추출할 수 있음

 

SELECT * FROM MEMBER WHERE ROWNUM=2;
SELECT * FROM MEMBER WHERE ROWNUM BETWEEN 3 AND 5;

 

👉 rownum은 결과 집합을 만들때 만들어져 1 이상의 rownum은 뽑아낼 수 없음

 

 

SELECT * FROM (SELECT ROWNUM R, M.* FROM MEMBER M) WHERE R=2;

 

 

SELECT * FROM (SELECT ROWNUM R, M.* FROM MEMBER M) WHERE R BETWEEN 3 AND 5;

 

👉 중간 rownum을 조회하려면 rownum을 컬럼으로 넣은 select 문을 서브쿼리로 사용해야 함

 

 

SELECT ROWNUM, m.* FROM MEMBER m ORDER BY M_NAME;

 

👉 rownum은 order by보다 먼저 실행되어 order by를 적용한 경우 rownum이 꼬이게 됨

 

SELECT ROWNUM, m.* FROM (SELECT * FROM MEMBER ORDER BY M_NAME) m;

 

👉 order by를 먼저 적용하고 싶다면 정렬한 쿼리문을 서브쿼리로 활용하여 해당 select 문에 rownum을 적용하면 됨

 


참고 자료

https://determination.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-ROWNUM-%EC%89%BD%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

 

오라클 - ROWNUM 쉽게 알아보기

ROWNUM WHERE 절에 의해 의해 추출된 DATA SET에 ROW 단위로 붙는 순번 조회되는 행 수를 제한할 때 많이 사용된다. ROWNUM에는 '=, >, >='를 조건으로 줄 수 없다. ROWNUM에 부여할 수 있는 조건은 '

determination.tistory.com

https://myblog1128.tistory.com/111

 

[Oracle] ROWNUM과 사용할 시 주의할 점

ROWNUM은 오라클 내부적으로 생성되는 가상 컬럼으로 자료의 일부를 잘라내서 이용할 때 사용한다. 즉, ROWNUM을 통해 조회된 컬럼이 몇 번째 컬럼인지 알 수 있다. 위의 사진과 같이 ID와 별개로 순

myblog1128.tistory.com

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.