기본 콘텐츠로 건너뛰기

rownum in mysql


http://rocksea.tistory.com/213
http://dhplanner.blogspot.kr/2009/07/mysql-rownum-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0.html



DBMS별 rownum사용법.
개발을 하다보면 Paging처리나 그외 정렬의 문제로 Rownum을 써야 하는 상황이 오게 됩니다.
Oracle을 사용 해 본 사람이라면 일상적으로 사용하겠지만 그 외 DBMS만 사용해본 개발자 라면
Rownum이 생소하게 느껴 질 수 도 있기 떄문입니다.
(Paging 구현시 LIMIT 와 OFFSET 으로 구현이 가능하기 떄문에.)
그래서 자주쓰는 DBMS에 rownum사용법에 대해 정리 해 보았습니다.

User Table
name 
company_no 
홍길동 
4 
신길동 
2 
심길동 
3 
고길동 
1 

- ORACLE
일단 Oracle에선 너무나 기본적으로 사용하기 떄문에 많은 분들이 아실거라 생각 됩니다만 정리 하는 차원에서 설명합니다.
SELECT name, ROW_NUMBER() OVER (ORDER BY company_no ASC) no
FROM USER;
OR
SELECT ROWNUM, a.* FROM ( SELECT * from USER order bu company_no ASC ) a


- MySQL
SELECT @RNUM := @RNUM + 1 AS NO, a.*
FROM
  (    SELECT *    FROM user  ORDER BY company_no ASC  ) a,  ( SELECT @RNUM := 0 ) b

댓글

이 블로그의 인기 게시물

sql id 별 AWR SQL Stat History 확인

-- AWR SQL Stat History 확인 with w_sqlstat as (     select /*+ inline use_nl(a,b,c) leading(a) index(a (sql_id))*/            a.*,            to_char(b.begin_interval_time,'mm/dd hh24:mi') snap_time     from   dba_hist_sqlstat a          , dba_hist_snapshot b     where  b.dbid             = a.dbid     and    b.instance_number  = a.instance_number     and    b.snap_id          = a.snap_id     and    a.sql_id = '7s4bffkwdq1r4' --    and    a.module like 'BTmapsc090%' --    and    b.instance_number  = 1 --    and    b.dbid = 3107085369 --    and    a.snap_id >= 15817     --and    b.snap_id = 55925     --and   ...