Notice
Recent Posts
Recent Comments
Link
forest_moon
[Oracle] LAG, LEAD 함수 본문
LAG, LEAD 함수
LAG / LEAD (컬럼명 [,offset] [,default]) OVER([PARTITION BY 컬럼] ORDER BY 컬럼 )
★ SQL SERVER 에서는 지원하지 않는 함수이다 !
LAG 함수 - 이전 행의 값을 리턴한다
LEAD 함수 - 다음 행의 값을 리턴한다
offset - 값을 가져올 행의 위치 ( 기본값 1 ) - 생략가능
default - 값이 없을 경우의 기본값 - 생략가능
PARTITION BY - 그룹 컬럼명 - 생략가능
ORDER BY - 정렬 컬럼명 - 필수
LAG / LEAD 함수
SELECT
number,
weight,
LAG(number) OVER(ORDER BY number) AS numberlag ,
LEAD(number) OVER(ORDER BY number) AS numberlead
FROM
table
WHERE
number IN ('1','2','3')
numberlag - 이전행의 값
numberlead - 다음행의 값
위 예시에서 LAG(number , 3) 으로 변경하면 3번째 이전 행의 값을 표시한다.
SELECT
number,
weight,
LAG(number,3) OVER(ORDER BY number) AS numberlag ,
LEAD(number,3) OVER(ORDER BY number) AS numberlead
FROM
table
WHERE
number IN ('1','2','3')
default 값
SELECT
number,
weight,
LAG(number,3,0000) OVER(ORDER BY number) AS numberlag ,
LEAD(number,3,0000) OVER(ORDER BY number) AS numberlead
FROM
table
WHERE
number IN ('1','2','3')
number의 컬럼에서 3번째 전의 값을 가져오는데 값이없을 경우 0000의 값으로 표시한다.
'SQL' 카테고리의 다른 글
[SQL] Optimizer 옵티마이저 란 ? (0) | 2023.05.31 |
---|---|
[SQL] Window Function 윈도우 함수 (0) | 2023.05.30 |
[SQL] SQL WITH문 (0) | 2023.04.20 |
[SQL] SQL UNION , UNION ALL (0) | 2023.04.18 |
[SQL] Query 실행 순서 (0) | 2023.04.02 |