ROWNUM/INST_NUM() 함수

설명

ROWNUM 함수는 질의 결과로 생성될 각 레코드에 대한 순서를 나타내는 번호를 반환한다. 첫 번째 결과 레코드는 1, 두 번째 결과 레코드는 2를 가진다.

일반적인 SELECT 문에서는 ROWNUM, INST_NUM()을, GROUP BY 절을 포함한 SELECT 문에서는 GROUPBY_NUM()을 사용할 수 있다. ROWNUM 함수를 사용하면 질의의 결과 레코드 수를 다양한 방법으로 제한할 수 있다. 예를 들어, 질의 결과의 처음 10건만 조회한다거나, 짝수 번째 또는 홀수 번째 레코드만 반환하도록 할 수 있다.

ROWNUM 함수는 결과 타입이 정수형이고, SELECT 절과 WHERE 절과 같이 질의 내에 수식이 위치할 수 있는 모든 곳에 사용할 수 있다. 하지만, ROWNUM 함수 결과를 속성 또는 연관된 부질의(correlated subquery)와 비교하는 것은 허용되지 않는다.

구문

INST_NUM()

ROWNUM

참고 사항
예제

다음은 1988 올림픽에서 금메달 개수를 기준으로 4위권 국가 이름을 반환하는 예제이다. (demodb)

--Limiting 4 rows using ROWNUM in the WHERE condition

SELECT  * FROM

(SELECT nation_code FROM participant WHERE host_year = 1988

     ORDER BY gold DESC) AS T

WHERE ROWNUM <5;

 

=== <Result of SELECT Command in Line 4> ===

 

  nation_code

======================

  'URS'

  'GDR'

  'USA'

  'KOR'

 

4 rows selected.

 

--Limiting 4 rows using FOR ORDERBY_NUM()

SELECT ROWNUM, nation_code FROM participant WHERE host_year = 1988

ORDER BY gold DESC

FOR ORDERBY_NUM() < 5;

 

=== <Result of SELECT Command in Line 3> ===

 

       rownum  nation_code

===================================

          156  'URS'

          155  'GDR'

          154  'USA'

          153  'KOR'

 

 

4 rows selected.

 

--Unexpected results : ROWNUM operated before ORDER BY

SELECT ROWNUM, nation_code FROM participant

WHERE host_year = 1988 AND ROWNUM < 5

ORDER BY gold DESC;

 

=== <Result of SELECT Command in Line 3> ===

 

       rownum  nation_code

===================================

            1  'ZIM'

            2  'ZAM'

            3  'ZAI'

            4  'YMD'

 

 

4 rows selected.