728x90

[정의]

쿼리에 의해 반환되는 행 번호를 출력

데이터에 순번을 메기거나, 특정 번호 데이터를 출력할 때 사용

 

[문법] 

select * from 테이블 where rownum between 1 and 5
> between과 함께 사용가능


select * from (select rownum num, member.* from member) where num between 1 and 5
-> select rownum 부분을 member테이블에 합침 num이라는 별칭을 붙임

rownum 뒤에 별칭 붙일 수 있음

select * from (select rownum num, notice.* from notice)
where num between 1 and 5;
>rownum으로 테이블을 따로 생성해서 데이터 출력할 수 있다. 기존 notice가 아니고 활용한 새로운 결과 집합임

 

ROW_NUMBER() OVER ([PARTITION BY value_expression, ... [n]] order_by_clause)

> over partition by와 함께 사용가능

 

[예제]

SELECT JOB, ENAME, SAL 
     , RANK( ) OVER (ORDER BY SAL DESC) RANK
     , ROW_NUMBER() OVER (ORDER BY SAL DESC) ROW_NUMBER
  FROM EMP; 

JOB       ENAME             SAL       RANK ROW_NUMBER
--------- ---------- ---------- ---------- ----------
PRESIDENT KING             5000          1          1
ANALYST   FORD             3000          2          2
ANALYST   SCOTT            3000          2          3
MANAGER   JONES            2975          4          4
MANAGER   BLAKE            2850          5          5
MANAGER   CLARK            2450          6          6
SALESMAN  ALLEN            1600          7          7
SALESMAN  TURNER           1500          8          8
CLERK     MILLER           1300          9          9
SALESMAN  WARD             1250         10         10
SALESMAN  MARTIN           1250         10         11
CLERK     ADAMS            1100         12         12
CLERK     JAMES             950         13         13
CLERK     SMITH             800         14         14

 

참고 : http://www.gurubee.net/lecture/2382

728x90

+ Recent posts