SQLのCASE文を使って特定条件で異なる値を更新する方法

SQLにおいて、特定の条件に基づいて異なる値を更新するケースが多々あります。これを実現するための一つの方法が、SQLのCASE文を使うことです。本記事では、CASE文を用いてデータベースの値を条件分岐して更新する具体的な方法を深堀りします。

目次

CASE文とは何か

CASE文はSQLの制御フロー文の一つであり、特定の条件に応じて異なる結果を返すことができます。これを使ってUPDATE文等に活用することで、複雑な条件に応じたデータの更新が可能です。

CASE文の基本構文

基本的なCASE文の構文は以下のようになります。

CASE 
  WHEN 条件1 THEN 結果1
  WHEN 条件2 THEN 結果2
  ...
  ELSE 結果N
END

実際の使用例

実際にCASE文を使ってデータベースを更新する例を考えてみましょう。

サンプルデータベースの構造

社員ID名前役職給与
1田中エンジニア400000
2佐藤マネージャー600000
3鈴木エンジニア420000
テーブル名称1:社員情報

給与の条件分岐の更新

エンジニアとマネージャーで、給与の上乗せ率を変えたいと考えた場合、以下のようなSQLクエリを用います。

UPDATE 社員
SET 給与 = CASE
  WHEN 役職 = 'エンジニア' THEN 給与 * 1.1
  WHEN 役職 = 'マネージャー' THEN 給与 * 1.2
  ELSE 給与
END;

このクエリによって、エンジニアの給与は10%増加し、マネージャーの給与は20%増加します。

更新後のデータベースの状態

社員ID名前役職給与
1田中エンジニア440000
2佐藤マネージャー720000
3鈴木エンジニア462000
テーブル名称2:更新後の社員情報

まとめ

SQLのCASE文は、特定の条件に基づいて異なる値を更新する場合に非常に便利です。この機能を使うことで、複雑な条件にも柔軟に対応することができ、データベースの運用が効率化されます。

コメント

コメントする

目次