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 |
給与の条件分岐の更新
エンジニアとマネージャーで、給与の上乗せ率を変えたいと考えた場合、以下のようなSQLクエリを用います。
UPDATE 社員
SET 給与 = CASE
WHEN 役職 = 'エンジニア' THEN 給与 * 1.1
WHEN 役職 = 'マネージャー' THEN 給与 * 1.2
ELSE 給与
END;
このクエリによって、エンジニアの給与は10%増加し、マネージャーの給与は20%増加します。
更新後のデータベースの状態
社員ID | 名前 | 役職 | 給与 |
---|---|---|---|
1 | 田中 | エンジニア | 440000 |
2 | 佐藤 | マネージャー | 720000 |
3 | 鈴木 | エンジニア | 462000 |
まとめ
SQLのCASE文は、特定の条件に基づいて異なる値を更新する場合に非常に便利です。この機能を使うことで、複雑な条件にも柔軟に対応することができ、データベースの運用が効率化されます。
created by Rinker
¥4,554
(2024/11/21 10:54:58時点 Amazon調べ-詳細)
コメント