본문 바로가기
ORACLE

[ORACLE] LAG() LEAD()

by 밥밥밥 2011. 3. 18.

오라클에서 게시판 만들때 이전글 다음글 순번 가지고 올때 사용한다.

예)
SELECT B.*
  FROM (
        SELECT IDX    AS "순번"
             , TITLE     AS "제목"
             , LEAD(IDX) OVER(ORDER BY IDX DESC) AS "이전글 순번"
             , LAG(IDX)  OVER(ORDER BY IDX DESC) AS "다음글 순번"
          FROM (SELECT 1 AS IDX, 'TEST' AS TITLE
                  FROM DUAL
                 UNION ALL
                SELECT 2, 'TEST2'
                  FROM DUAL
                 UNION ALL
                SELECT 3, 'TEST3'
                  FROM DUAL
                UNION ALL
                SELECT 4, 'TEST4'
                  FROM DUAL 
               ) A 
       ) B
 WHERE B.순번 = 1