Oracle SQLだけで年度の月を取得する
Oracle 11g で試しました。SQLを使って年度の月を表形式で取得する方法です。
SELECT
CASE WHEN LEVEL + 3 > 12
THEN 1
ELSE 0
END FLAG,
LPAD (
CASE WHEN LEVEL + 3 > 12
THEN LEVEL - 9
ELSE LEVEL + 3
END, 2, '0' ) NENDO_MONTH
)
FROM DUAL
CONNECT GY LEVEL <=12
こんな結果が得られます。
FLAG NENDO_MONTH ---- ----------- 0 04 0 05 0 06 0 07 0 08 0 09 0 10 0 11 0 12 1 01 1 02 1 03
階層問い合わせですね。FLAG列の値はソートする時や実際の年を足し算するときに使えます。