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 |