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
반응형