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


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です