SQL CASE式
SQL CASE式
CASE
式は条件を通過し、最初の条件が満たされたときに値を返します(if-hen-else文のようなものです)。つまり、ある条件が真になると、読み取りを中止して結果を返します。条件が真でなければ、ELSE
句の値を返します。
ELSE
部分がなく、どの条件も真でなければ、NULLを返します。CASE構文
CASE
WHEN<em>condition1</em>THEN<em>result1</em>
WHEN<em>condition2</em>THEN<em>result2</em>
WHEN<em>conditionN</em>THEN<em>resultN</em>
ELSE<em>result</em>
END;
デモデータベース
以下は、Northwindサンプルデータベースの"OrderDetails"テーブルからの選択です。
注文明細ID |
オーダーID |
製品番号 |
量 |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
SQL CASEの例
次のSQLは条件を通過し、最初の条件が満たされたときに値を返します。
例
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
次のSQLは、顧客を都市別に並べ替えます。ただし、CityがNULLの場合は、Countryで並べ替えます。
例
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。