SQL

[오라클] 게시판 이전페이지, 다음페이지값 얻기 (LEAD, LAG)

dev.mk 2017. 10. 29. 14:58
반응형

        


오라클에서 LEAD , LAG 함수를 이용하면 이전,다음 SEQ값을 구할 수 있다.


SELECT 

 SEQ

 ,LEAD(SEQ컬럼,1) OVER(ORDER BY SEQ컬럼) AS NEXT

 ,LAG(SEQ컬럼,1) OVER(ORDER BY SEQ컬럼) AS PREV  

FROM BBS_TABLE


결과

SEQ NEXT PREV

1      2      null

2      3       1

3      null    2




조건이 들어가게 되면 LEAD,LAG 함수를 FROM 안에  쓰고 AS 명을 최상단 SELECT문에 지정해줘야하는 불편함이 있다.

쿼리가 길어져도 FROM절안에 넣거나 LEAD,LAG 각각 서브쿼리로 빼면 될 것 같다.


SELECT NEXT, PREV

FROM( 

         SELECT BBS_SEQ

             LEAD(BBS_SEQ,1) OVER (ORDER BY BBS_SEQ) AS NEXT

            LAG(BBS_SEQ,1) OVER (ORDER BY BBS_SEQ) AS PREV

         FROM DM_BBS_DATA

         )

WHERE BBS_SEQ = 2   -- 내가 누른 게시판 SEQ값


결과 

NEXT 3 

PREV 1

반응형