■35503 / ) |
Re[3]: WHERE内でIF、CASE等を使用する方法について |
□投稿者/ よねKEN (326回)-(2009/05/06(Wed) 17:33:02)
|
> 「SQL」は、DBはOracleでSQLPLUSを使用してSQL文を入力してます。
バージョンは?CURRENT_DATEを使っているようなので9i以降だと思いますが。
Oracle9i以降の検証環境がないのでまったく検証していませんが、以下のような感じでいけませんかね。 #とくに各関数の仕様や動作(TO_CHAR、TO_NUMBER、CURRENT_DATEなどの使い方)が今回の目的に正しく適合しているかはわかりません。
下記のサイトを参考にしました。 http://www.shift-the-oracle.com/sql/functions/index-a.html
DELETE FROM TEBLE WHERE 年度 <= (SELECT CASE WHEN TO_CHAR(CURRENT_DATE,'MM') > '03' THEN TO_NUMBER(TO_CHAR(CURRENT_DATE,'YYYY')) - 3 ELSE TO_NUMBER(TO_CHAR(CURRENT_DATE,'YYYY')) - 4 END FROM DUAL)
|
|