ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿงฎ Oracle โ€“ ํŠน์ • ์—ฐ๋„๋ถ€ํ„ฐ ํ˜„์žฌ ์—ฐ๋„๊นŒ์ง€ ๋ชฉ๋ก ๊ตฌํ•˜๊ธฐ

Oracle SQL์—์„œ 2017๋…„๋ถ€ํ„ฐ ํ˜„์žฌ๋…„๋„๊นŒ์ง€์˜ ์—ฐ๋„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค.
CONNECT BY LEVEL ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ(์‹œํ€€์Šค ์ƒ์„ฑ) ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“˜ ์˜ˆ์ œ ์ฟผ๋ฆฌ

SELECT TO_CHAR(SYSDATE, 'YYYY') - LEVEL + 1 AS YEAR
FROM DUAL
CONNECT BY LEVEL <= ((TO_CHAR(SYSDATE, 'YYYY') + 1) - 2017);

๐Ÿ” ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ (2025๋…„ ๊ธฐ์ค€)

YEAR
2025
2024
2023
2022
2021
2020
2019
2018
2017

๐Ÿง  ์ฟผ๋ฆฌ ์„ค๋ช…

๊ตฌ๋ฌธ ์„ค๋ช…
TO_CHAR(SYSDATE, 'YYYY') ํ˜„์žฌ ์—ฐ๋„๋ฅผ ๋ฌธ์žํ˜•์œผ๋กœ ๋ฐ˜ํ™˜
LEVEL CONNECT BY ๊ตฌ๋ฌธ์—์„œ ์ƒ์„ฑ๋˜๋Š” ๊ณ„์ธต ์ˆ˜์ค€(1๋ถ€ํ„ฐ ์‹œ์ž‘)
CONNECT BY LEVEL <= n LEVEL์ด n์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ์ˆ˜ํ–‰
2017 ์‹œ์ž‘ ๊ธฐ์ค€ ์—ฐ๋„
- LEVEL + 1 ์—ญ์ˆœ(๋‚ด๋ฆผ์ฐจ์ˆœ)์œผ๋กœ ์—ฐ๋„ ์ƒ์„ฑ

โš™๏ธ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ ค๋ฉด

SELECT TO_CHAR(SYSDATE, 'YYYY') - LEVEL + 1 AS YEAR
FROM DUAL
CONNECT BY LEVEL <= ((TO_CHAR(SYSDATE, 'YYYY') + 1) - 2017)
ORDER BY YEAR ASC;
๋Œ“๊ธ€