**** 다른곳의 자료를 복사해왔다. ****
페이징 처리
SELECT * FROM
(
필드를 출력하되 앞에 번호를 매기면서 출력하라
SELECT ROWNUM AS RNUM, GET.* FROM
(
+ query + (이곳에 데이터를 불러오는 쿼리문이 들어간다.)
) GET(테이블의 별칭)
ORDER BY ROWNUM desc
)
WHERE RNUM BETWEEN 1 AND 10 ORDER BY RNUM ASC;
페이징 처리를 하기 위해선 전체 줄 수도 알아야 하기 때문에, 그를 알기위한 쿼리문
SELECT COUNT(*) CNT FROM ( + query + )
출처: http://notpeelbean.tistory.com/36 [Storm Of Two Yellow Beans]
문제_
emp테이블에서 가장 최근에 입사한 5명의 사원의 이름과 입사일을 출력
하시오. =============TOP-N(화면에 출력할 갯수)
공식)
select rownum "별칭명",필드명,,,테이블 별칭.*
from (
select 필드명,,,
from 테이블명
order by top-N 필드명(정렬이 되는 필드명) desc (가장 최근)
) 별칭명
where 조건식(rownum <=top-N)에 맞는값을 부여
SQL> ed
file afiedt.buf(이)가 기록되었습니다
1* select rownum empno,ename from emp
SQL> /
EMPNO ENAME
---------- ----------
1 SMITH
2 ALLEN
3 WARD
4 JONES
5 MARTIN
6 BLAKE
7 CLARK
8 SCOTT
9 KING
10 TURNER
11 ADAMS
EMPNO ENAME
---------- ----------
12 JAMES
13 FORD
14 MILLER
14 개의 행이 선택되었습니다.
SQL> select rownum "num",ename,hiredate
2 from(select ename,hiredate from emp order by hiredate desc)
3 where rownum <=#
num의 값을 입력하십시오: 5
구 3: where rownum <=&num
신 3: where rownum <=5
num ENAME HIREDATE
---------- ---------- --------
1 ADAMS 87/05/23
2 SCOTT 87/04/19
3 MILLER 82/01/23
4 JAMES 81/12/03
5 FORD 81/12/03
'Oracle > View' 카테고리의 다른 글
데이터 베이스_ 오라클 VIEW [view 종류, 관리] Union, Union all 시큐어 코딩 (0) | 2019.07.02 |
---|---|
데이터 베이스_ 오라클 VIEW [view 종류, 관리] 페이징 처리 기법 1 (0) | 2019.07.02 |
데이터 베이스_ 오라클 VIEW [view 종류, 관리] 복합뷰 활용 4 (0) | 2019.07.02 |
데이터 베이스_ 오라클 VIEW [view 종류, 관리] 단순뷰 1편 (0) | 2019.07.02 |
데이터 베이스_ 오라클 VIEW [view 종류, 관리] 복합뷰 활용 3 (0) | 2019.07.02 |
댓글