Database초보우낙

5. 페이징 처리가능 (12c 뉴피처) 본문

oracle 12c

5. 페이징 처리가능 (12c 뉴피처)

오운학 2024. 4. 26. 15:37

정렬된 결과에서 상위 몇개의 데이터만 가져올 때 특정 행을 제외하고 출력할 수 있다.

 

 

예제1. SCOTT의 월급을 3500으로 변경합니다.

update  emp
  set sal = 3500
  where  ename='SCOTT';

commit;



예제2. 이름과 월급을 조회하는데 위의 3개의 데이터만 가져오시오!

select  ename, sal
  from  emp
  fetch  first  3  rows  only;

 

#3. 월급이 높은 사원순으로 이름과 월급을 조회하는데 위의 3개의 데이터만 가져오세요

select ename, sal
from emp
order by sal desc
fetch first 3 rows only

#4. 월급이 높은 사원부터 이름과 월급을 출력하는데 2번째 행 까지는 제외하고 3번째 행부터 출력되게 하세요

(offset 사용)

select ename, sal
from emp
order by sal desc
offset 2 rows fetch first 3 rows only;

 

#5. offset 안쓰고 위의 결과를 출력하세요(11g, 튜닝전)

select * 
	from (select rownum rnum, t.*
    		from (select ename , sal
            		from emp
                    order by sal desc) t
            where rownum < = 5
         )
     where rnum >=3;