NO_1 NO_2 년도 학기 학번 연속여부
======================================================
1 0 2007 1학기 200710250
2 0 2007 2학기 200710250
3 0 2008 1학기 200710250
4 0 2008 2학기 200710250
5 1 2011 1학기 200710250 Y
6 2 2011 2학기 200710250 Y
7 0 2013 1학기 200710250
8 0 2013 2학기 200710250
9 3 2014 1학기 200710250
10 0 2014 2학기 200710250
11 4 2017 1학기 200710250
12 0 2017 2학기 200710250
13 0 2018 1학기 200710250
14 0 2018 2학기 200710250
15 0 2019 1학기 200710250
17 0 2019 2학기 200710250
19 0 2020 1학기 200710250
위와 같은 데이터가 있는 경우 NO_2 칼럼이 숫자가 연속으로 증가된 경우 Y 로 표기하려면
1)UPDATE 문을 써서 연속여부 칼럼에 UPDATE 하는 SQL 구현은 ?
OR
2)조회시 나타나게 하려면 함수를 어떻게 만들어야 할까요 ?
WITH t AS ( SELECT 1 no1, 0 no2, 2007 년도, '1학기' 학기, '200710250' 학번 FROM dual UNION ALL SELECT 2, 0, 2007, '2학기', '200710250' FROM dual UNION ALL SELECT 3, 0, 2008, '1학기', '200710250' FROM dual UNION ALL SELECT 4, 0, 2008, '2학기', '200710250' FROM dual UNION ALL SELECT 5, 1, 2011, '1학기', '200710250' FROM dual UNION ALL SELECT 6, 2, 2011, '2학기', '200710250' FROM dual UNION ALL SELECT 7, 0, 2013, '1학기', '200710250' FROM dual UNION ALL SELECT 8, 0, 2013, '2학기', '200710250' FROM dual UNION ALL SELECT 9, 3, 2014, '1학기', '200710250' FROM dual UNION ALL SELECT 10, 0, 2014, '2학기', '200710250' FROM dual UNION ALL SELECT 11, 4, 2017, '1학기', '200710250' FROM dual UNION ALL SELECT 12, 0, 2017, '2학기', '200710250' FROM dual UNION ALL SELECT 13, 0, 2018, '1학기', '200710250' FROM dual UNION ALL SELECT 14, 0, 2018, '2학기', '200710250' FROM dual UNION ALL SELECT 15, 0, 2019, '1학기', '200710250' FROM dual UNION ALL SELECT 17, 0, 2019, '2학기', '200710250' FROM dual UNION ALL SELECT 19, 0, 2020, '1학기', '200710250' FROM dual ) SELECT no1, no2, 년도, 학기, 학번 , DECODE(LAG(no2) OVER(PARTITION BY 학번 ORDER BY no1), no2 - 1, 'Y') 연속여부 FROM t ;