본문 바로가기

DataBase/SQL

게시판 페이징 처리

CREATE TABLE BOARD(
               SEQ NUMBER PRIMARY KEY,
               TITLE VARCHAR2(50),
               WRITER VARCHAR2(50),
               CONTENTS VARCHAR2(200),
               REGDATE DATE,
               HITCOUNT NUMBER
)

INSERT INTO BOARD VALUES(1, 'A1', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(2, 'A2', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(3, 'A3', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(4, 'A4', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(5, 'A5', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(6, 'A6', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(7, 'A7', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(8, 'A8', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(9, 'A9', 'A', 'A', SYSDATE, 0);
INSERT INTO BOARD VALUES(10, 'A10', 'A', 'A', SYSDATE, 0);

=> 글 번호 6~10까지의 글을 출력하라.

SELECT * FROM (SELECT * FROM BOARD
                              ORDER BY SEQ DESC)
WHERE ROWNUM BETWEEN 6 AND 10;

위처럼 뽑으면 나올거 같지? 안나와..

=> 
아래 처럼 사용 하면 나온다.

SELECT * FROM (SELECT ROWNUM AS ROW_NUM, TEMP.*
FROM(SELECT * FROM BOARD
                                   ORDER BY SEQ DESC) TEMP
                             )WHERE ROW_NUM BETWEEN 6 AND 10;



'DataBase > SQL' 카테고리의 다른 글

뷰(VIEW)  (0) 2017.03.16
INDEX  (0) 2017.03.16
FROM 절 서브 쿼리  (0) 2017.03.16
다중 컬럼 다중 로우  (0) 2017.03.16
HAVING 절  (0) 2017.03.16