ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
更新レコードのデータによって、UPDATEする内容を変更する
スポンサード リンク

サンプル表「emp」データ
SQL> select * from emp;

EMP DEP NAME     SALARY
--- --- ---------- ----------
E01 D01 なまえ1    80
E02 D01 なまえ2    150
E03 D02 なまえ3    300


例1) 表「emp」のカラム「salary」が100未満の場合は20%増やし、100以上かつ200以下の場合は30%減らす。
SQL> update emp set salary = (
 2     case
 3      when salary < 100 then
 4       salary * 1.2
 5      when salary >= 100 and salary < 200 then
 6       salary * 0.7
 7      else salary
 8     end
 9    );

3行が更新されました。

SQL> select * from emp;

EMP DEP NAME    SALARY
--- --- ---------- ----------
E01 D01 なまえ1   96
E02 D01 なまえ2   105
E03 D02 なまえ3   300

SQL>


スポンサード リンク


SELECTの結果をINSERTする
SELECTの結果から条件により、INSERTするテーブルを振り分ける(INSERT〜WHEN)
SELECTで取得した値でUPDATEする
更新レコードのデータによって、UPDATEする内容を変更する
レコードが存在しなければINSERT、レコードが存在すればUPDATEする(MERGE)
SELECTで取得した値をキーにDELETEする
重複したレコードをDELETEする

SQL(DML2) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ