본문 바로가기

TroubleShooting/DB

rownum 표현 방법

728x90

oracle 에서 지원하는 rownum 을 표현하는 방법에 대해서 DBMS 별로 정리해보자.


* Oracle

select rownum, Roles.*
from Roles
where rownum between 1 and 5;

* MSSQL

select * from 
(
    select Row_Number() OVER (order by roleIdx desc) AS rownum, * 
    from Roles
) t
where rownum between 1 and 5

* MySQL

: MySQL 에서 pagination 을 위해 사용하는 limit 말고, row 번호가 필요해서 아래와 같이 사용한다.

select t.* 
from
(
    select @rownum := @rownum + 1 as rownum, Roles.*
    from
        Roles, (select @rownum :=0) r
    order by roleIdx desc
) t
where t.rownum between 1 and 5;


도움 받은 곳 :

http://jimmod.com/blog/2008/09/displaying-row-number-rownum-in-mysql/