티스토리 뷰

 

TEMP 테이블

DBMS 종류에 따른 분할 쿼리 방식은 조금씩 다르다. 페이징을 하거나, 데이터를 끊어 읽을 때 사용된다.

 

Oracle

변수 처리 시 start, end로 데이터를 제한하여 분할하면 된다.
ex) WHERE TOTAL.RNUM > start AND TOTAL <= end;

SELECT TOTAL.*
  FROM (SELECT ROW_NUMBER() OVER(ORDER BY EMP_ID ASC) AS RNUM
             , EMP_ID
             , EMP_NAME
          FROM TEMP) TOTAL
 WHERE TOTAL.RNUM > 0
   AND TOTAL.RNUM <= 10;

SELECT TOTAL.*
  FROM (SELECT ROWNUM AS RNUM
             , A.*
          FROM (SELECT EMP_ID
                     , EMP_NAME
                  FROM TEMP
                 ORDER BY EMP_ID ASC) A) TOTAL
 WHERE TOTAL.RNUM > 0
   AND TOTAL.RNUM <= 10;

MySQL

변수 처리 시 start, limitRowNum으로 데이터를 제한하여 분할하면 된다.
ex) LIMIT start, limitRowNum;

SELECT @ROWNUM:=@ROWNUM+1 AS RNUM
     , TOTAL.*
  FROM (SELECT EMP_ID
             , EMP_NAME
          FROM TEMP
             , (SELECT @ROWNUM := 0) R
         ORDER BY EMP_ID ASC
       ) TOTAL
 LIMIT 0, 10;

PostgreSQL

변수 처리 시 start, limitRowNum으로 데이터를 제한하여 분할하면 된다.
ex) OFFSET start LIMIT limitRowNum;

SELECT TOTAL.*
  FROM (SELECT ROW_NUMBER() OVER(ORDER BY EMP_ID ASC) AS RNUM
             , EMP_ID
             , EMP_NAME
          FROM TEMP) TOTAL
OFFSET 0 LIMIT 10;

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함