-
[오라클] 게시판 이전페이지, 다음페이지값 얻기 (LEAD, LAG)SQL 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
반응형'SQL' 카테고리의 다른 글
오라클 LOOP사용, 테이블에 테스트 데이터 넣기 (0) 2019.04.12 (DATABASE) 날짜추가 함수 ( 오라클 / MSSQL / Mysql ) (0) 2019.04.08 [오라클] JOIN 후 UPDATE (0) 2017.07.23 [오라클] RANK OVER PARTITION BY (0) 2017.07.23 [오라클] ORACLE 계정내 모든 테이블들의 로우 카운트(행수) 조회 (0) 2017.06.09