CASE文の使用方法:
CASE文は、条件に基づいて複数の結果を返すために使用されます。一般的なCASE文の書式は次のとおりです:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
例えば、以下のようなテーブルがあるとします:
employeesテーブル:
+----+---------+--------+
| id | name | salary |
+----+---------+--------+
| 1 | John | 50000 |
| 2 | Sarah | 60000 |
| 3 | Michael | 70000 |
+----+---------+--------+
次のクエリは、salary列の値に基づいて従業員の評価を返します:
SELECT name,
CASE
WHEN salary < 60000 THEN 'Low'
WHEN salary >= 60000 AND salary < 70000 THEN 'Medium'
ELSE 'High'
END AS evaluation
FROM employees;
このクエリの結果は次のようになります:
+---------+------------+
| name | evaluation |
+---------+------------+
| John | Low |
| Sarah | Medium |
| Michael | High |
+---------+------------+
スイッチ文の使用方法:
スイッチ文は、複数の値に基づいて異なる結果を返すために使用されます。一般的なスイッチ文の書式は次のとおりです:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END
例えば、以下のようなテーブルがあるとします:
productsテーブル:
+----+---------+-------+
| id | name | color |
+----+---------+-------+
| 1 | Apple | Red |
| 2 | Banana | Yellow|
| 3 | Orange | Orange|
+----+---------+-------+
次のクエリは、color列の値に基づいて果物の分類を返します:
SELECT name,
CASE color
WHEN 'Red' THEN 'Apple'
WHEN 'Yellow' THEN 'Banana'
ELSE 'Other'
END AS classification
FROM products;
このクエリの結果は次のようになります:
+--------+---------------+
| name | classification|
+--------+---------------+
| Apple | Apple |
| Banana | Banana |
| Orange | Other |
+--------+---------------+
以上が、SQLでのCASE文とスイッチ文の使用方法と例です。これらの機能を活用することで、柔軟な条件付きのクエリやデータ変換が可能になります。