사용자 도구

사이트 도구


기술문서:레퍼런스:쿼리:응용:paging_query

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
기술문서:레퍼런스:쿼리:응용:paging_query [2025/04/02 19:24]
carlito76 ↷ 문서가 개인문서:임시문서:기술문서:레퍼런스:쿼리:응용:paging_query에서 기술문서:레퍼런스:쿼리:응용:paging_query(으)로 이동되었습니다
기술문서:레퍼런스:쿼리:응용:paging_query [2025/11/27 11:55] (현재)
carlito76
줄 6: 줄 6:
 ====== Paging Query ====== ====== Paging Query ======
  
-^  물리명  ^  논리명  ^  타입  ^  KEY  ^ +<note tip> 
-| 일련번호 | sn | 숫자 | PK | +최소 지원 버전은 약간의 차이가 있을 수 있습니다. 
-| 제목 | title | 문자 | | +</note>
-| 내용 | content | 문자 | |+
  
 +===== 테이블 명세 =====
 +^  물리명  ^  논리명  ^  타입  ^  길이  ^  KEY  ^
 +| 일련번호 | sn | 숫자형 | | PK |
 +| 제목 | title | 문자형 | 100 | |
 +| 내용 | content | 문자형 | 4000 | |
 +
 +===== SQL 스크립트 =====
 <sxh sql; gutter: true; title: DDL;> <sxh sql; gutter: true; title: DDL;>
--- MySQL/MariaDB & MSSQL & PostgreSQL 
-CREATE TABLE ex_paging ( 
- sn BIGINT NOT NULL PRIMARY KEY, 
- title VARCHAR(100) NOT NULL, 
- content TEXT NOT NULL 
-); 
- 
--- Oracle/Tibero 
 CREATE TABLE ex_paging ( CREATE TABLE ex_paging (
- sn NUMBER NOT NULL PRIMARY KEY,+ sn INT NOT NULL PRIMARY KEY,
  title VARCHAR(100) NOT NULL,  title VARCHAR(100) NOT NULL,
- content CLOB NOT NULL+ content VARCHAR(4000) NOT NULL
 ); );
 </sxh> </sxh>
줄 39: 줄 37:
 INSERT INTO ex_paging (sn, title, content) VALUES (10, '제목 10', '내용 10'); INSERT INTO ex_paging (sn, title, content) VALUES (10, '제목 10', '내용 10');
 INSERT INTO ex_paging (sn, title, content) VALUES (11, '제목 11', '내용 11'); INSERT INTO ex_paging (sn, title, content) VALUES (11, '제목 11', '내용 11');
 +INSERT INTO ex_paging (sn, title, content) VALUES (12, '제목 12', '내용 12');
 +INSERT INTO ex_paging (sn, title, content) VALUES (13, '제목 13', '내용 13');
 +INSERT INTO ex_paging (sn, title, content) VALUES (14, '제목 14', '내용 14');
 +INSERT INTO ex_paging (sn, title, content) VALUES (15, '제목 15', '내용 15');
 +INSERT INTO ex_paging (sn, title, content) VALUES (16, '제목 16', '내용 16');
 +INSERT INTO ex_paging (sn, title, content) VALUES (17, '제목 17', '내용 17');
 +INSERT INTO ex_paging (sn, title, content) VALUES (18, '제목 18', '내용 18');
 +INSERT INTO ex_paging (sn, title, content) VALUES (19, '제목 19', '내용 19');
 +INSERT INTO ex_paging (sn, title, content) VALUES (20, '제목 20', '내용 20');
 </sxh> </sxh>
  
 ===== MySQL/MariaDB ===== ===== MySQL/MariaDB =====
-<sxh sql; gutter: true;>+<sxh sql; gutter: true; highlight: [19];> 
 +/* 
 + MySQL 5.0.12 이상/MariaDB 5.1 이상 
 +*/
 SELECT SELECT
  t.*, @ROWNUM AS "_total_count_", (@ROWNUM - t._rownum_ + 1) AS "_no_"  t.*, @ROWNUM AS "_total_count_", (@ROWNUM - t._rownum_ + 1) AS "_no_"
줄 63: 줄 73:
 ORDER BY ORDER BY
  t._rownum_ ASC  t._rownum_ ASC
 +-- 1 페이지
 LIMIT 10 OFFSET 0 LIMIT 10 OFFSET 0
 +-- 2 페이지
 +-- LIMIT 10 OFFSET 10
 ; ;
 </sxh> </sxh>
  
 ===== MSSQL ===== ===== MSSQL =====
-<sxh sql; gutter: true; highlight: [9];> +<sxh sql; gutter: true; highlight: [12-13];> 
--- MSSQL 2005 이상+/* 
 + MSSQL 2005 이상 
 +*/
 SELECT SELECT
  t.*, (t._total_count_ - t._rownum_ + 1) AS "_no_"  t.*, (t._total_count_ - t._rownum_ + 1) AS "_no_"
줄 78: 줄 93:
  (  (
  -- ↑↑↑ 페이징 쿼리 ↑↑↑  -- ↑↑↑ 페이징 쿼리 ↑↑↑
- SELECT TOP 100 PERCENT+ SELECT TOP (99.999) PERCENT 
 + -- SELECT TOP (9223372036854775807)
  *  *
  FROM  FROM
줄 88: 줄 104:
  ) t  ) t
 WHERE WHERE
 + -- 1 페이지
  t._rownum_ BETWEEN 1 AND 10  t._rownum_ BETWEEN 1 AND 10
 + -- 2 페이지
 + -- t._rownum_ BETWEEN 11 AND 20
 ; ;
 </sxh> </sxh>
줄 94: 줄 113:
 ===== Oracle/Tibero ===== ===== Oracle/Tibero =====
 <sxh sql; gutter: true;> <sxh sql; gutter: true;>
 +/*
 + Oracle 9i 이상/Tibero 4 이상
 +*/
 SELECT SELECT
  t.*, ("_total_count_" - "_rownum_" + 1) AS "_no_"  t.*, ("_total_count_" - "_rownum_" + 1) AS "_no_"
줄 112: 줄 134:
  ) t  ) t
 WHERE WHERE
 + -- 1 페이지
  "_rownum_" BETWEEN 1 AND 10  "_rownum_" BETWEEN 1 AND 10
 + -- 2 페이지
 + -- "_rownum_" BETWEEN 11 AND 20
 ; ;
 </sxh> </sxh>
줄 118: 줄 143:
 ===== PostgreSQL ===== ===== PostgreSQL =====
 <sxh sql; gutter: true;> <sxh sql; gutter: true;>
 +/*
 + PostgreSQL 8.4 이상
 +*/
 SELECT SELECT
  t.*, (t._total_count_ - t._rownum_ + 1) AS "_no_"  t.*, (t._total_count_ - t._rownum_ + 1) AS "_no_"
줄 135: 줄 163:
  ) p  ) p
  ) t  ) t
 +-- 1 페이지
 LIMIT 10 OFFSET 0 LIMIT 10 OFFSET 0
 +-- 2 페이지
 +-- LIMIT 10 OFFSET 10
 ; ;
 </sxh> </sxh>
 +
 +{{tag>"쿼리" "Query" "응용"}}