Data Base_Oracle/SQL

SQL_ROWNUM & TOP-N 방식

pathas 2020. 1. 9. 22:27

ROWNUM

화면에 레코드가 출력될 때 가상으로 번호를 매겨서 같이 출력
Oracle에서 사용하는 예약어

§ 형식

[ SQL> select rownum, 필드명1, 필드명2,,,, from 테이블명; ]

# 예제

▷ emp 테이블에서 사원번호, 이름에 번호를 매겨서 출력

▶ [ SQL> select rownum, empno, ename from emp; ]

ROWNUM EMPNO ENAME
1 7369 SMITH
2 7499 ALLEN
... ... ...

※ 실제 필드가 존재하는 것은 아니며, 보기 편하게 행을 구분해주는 가상 필드

 

※ 별칭 부여 가능

 

▶ [ SQL> select rownum empno, ename from emp ]

EMPNO ENAME
1 SMITH
2 ALLEN
... ...

TOP-N

Top-N 방법
위에서부터 N번째 레코드까지 출력하는 방식

§ 형식

[ SQL> select rownum 별칭, 필드명,,, 테이블명.*
from(
select 필드명,,,,
from 테이블명
order by 필드명 desc
)
where 조건식; ]

 

테이블명.* : select * from table 과 같은 기능

# 예제

▷ emp테이블에서 가장 최근에 입사한 3명의 이름, 입사일 출력

▶ [ SQL> select rownum num, ename, hiredate
from (
select ename, hiredate
from emp
order by hiredate desc
)
where rownum <= & num;
num의 값을 입력하십시오 : 3 ]

NUM ENAME HIREDATE
1 ADAMS 87/05/23
2 SCOTT 87/04/19
3 MILLER 82/01/23

Oracle을 이용해서 페이징처리를 할 때 필요한 ROWNUM과 TOP-N 정렬 방식에 대해 알아보았습니다.

ROWNUM의 경우 필드의 레코드에 숫자를 매겨주기 때문에 평소에도 데이터를 편하게 보는 방법으로 사용할 수 있겠습니다.