데이터 베이스/Oracle SQL

rownum 실습

Gh1324 2021. 10. 23. 02:11
728x90

rownum은 sql 쿼리를 실행했을 때 결과값에 자동으로 붙는 인덱스 같은 것이다.

 

rownum을 이용하면 결과값의 개수를 제한해서 나타낼 수 있다.

 

 

예를 들어

 

select * from notice where rownum 1 and 5;

 

이라고 입력하면 결과값을 5개까지만 나타낸다.

 

하지만 rownum을 2번째부터 나타내려고 할땐 문제가 생긴다.

select * from notice where rownum between 2 and 3;

 

언뜻 보기엔 문제없는 쿼리 같지만 실행해보면 결과값이 나오지 않는다.

 

이유는 처음 rownum이 생길때 rownum은 1부터 시작한다.

그리고 rownum을 between 2 and 3 이 문장과 비교하게 된다.

rownum 1은 범위 값에 안들어가기 때문에 다음 결과값 행을 가져오게 되고, 이것이 반복되어 결과값은 나타나지 않는다.

 

따라서 rownum을 먼저 생성해준 뒤 다른이름으로 나타내고, 그 결과값을 이용해주면 사용할 수 있다.

 -> select * from (select rownum num, notice.* from notice) where num between 2 and 4;

 

728x90

'데이터 베이스 > Oracle SQL' 카테고리의 다른 글

SQL DEVELOPER 경고 오류 실행 안됨  (3) 2021.10.24
[oracle sql] 문자열 내장 함수 (1)  (0) 2021.10.23
정규식 참고 사이트  (0) 2021.10.23
sql 실습 (1)  (0) 2021.10.22
Oracle DML 데이터 조작어  (0) 2021.10.19