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列の値はソートする時や実際の年を足し算するときに使えます。