DataBase/SQL

게시판 페이징 처리

prohibit174 2017. 3. 16. 22:01
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;