일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- memcached
- NextJS
- header setting
- swagger
- 헤더 설정
- jpa entity자동
- 도커
- JPA
- 리눅스
- spring
- spring boot
- generate pojos
- 초기 구축
- jvm
- MySQL
- JavaScript
- custom valid
- SpringBoot
- dto valid
- docker 설치
- Next.js 14
- docker
- CentOS6
- ollama langflow
- java8
- React
- generate entity
- java9
- 초기 세팅
- Java
- Today
- Total
개발자의 길
[oracle] 이전글 다음글 분석함수(LAG,LEAD) 본문
현재 행의 이전 또는 이후의 행 값을 들고와야 할 때. 아래의 펑션을 이용하면 됨.
/* LEAD() OVER() FUNCTION
현재 행의 다음 데이터에 접근.
ACCESS_ROW_INDEX : 현재 행 기준 N 번째 행의 값을 들고 옴.
1 : 현재 행의 바로 다음 행 값.
2 : 현재 행의 2번째 행 값.
...
*/
-- QUERY
SELECT LEAD([COLUMN_NANE], [ACCESS_ROW_INDEX]) OVER(ORDER BY [COLUMN_NAME])
FROM [TABLE_NAME];
/* LAG() OVER() FUNCTION
현재 행의 이전 데이터에 접근.
*/
SELECT LAG([COLUMN_NANE], [ACCESS_ROW_INDEX]) OVER(ORDER BY [COLUMN_NAME])
FROM [TABLE_NAME];
Ex)
-- 다음글
SELECT A.*, LEAD(A.COLUMN1, 1) OVER(ORDER BY A.COLUMN2) AS NEXT_VALUE
FROM TABLE A;
COLUMN1 COLUMN2
1 A
2 B
3 C
의 데이터가 존재하는 경우 위 쿼리를 실행하면,
COLUMN1 COLUMN2 NEXT_VALUE
1 A 2
2 B 3
3 C (NULL)
--ACCESS_ROW_INDEX 가 2 인 경우
COLUMN1 COLUMN2 NEXT_VALUE
1 A 3
2 B (NULL)
3 C (NULL)
--이전글
SELECT A.*, LAG(A.COLUMN1, 1) OVER(ORDER BY A.COLUMN2) AS PREV_VALUE
FROM TABLE A;
COLUMN1 COLUMN2 PREV_VALUE
1 A (NULL)
2 B 1
3 C 2
'3. DB' 카테고리의 다른 글
[DB] Oracle 함수 <> MySQL 함수 (0) | 2015.10.27 |
---|---|
[mysql] 날짜 함수 정리 (0) | 2015.07.01 |
[ORACLE] WITH문을 이용해 가상테이블 만들기(WITH TABLE AS) (0) | 2014.02.26 |
[DB]구분자로 잘라서 가져오기(REGEXP_SUBSTR, SUBSTR+INSTR 2가지 방식) (0) | 2014.02.04 |
[DB] JOIN 문 설명(LEFT JOIN,RIGHT JOIN,INNER JOIN,OUTER JOIN) (0) | 2014.01.14 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.