MySQLチュートリアル

MySQLホーム MySQLイントロ MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL WHERE MySQL AND、OR、NOT MySQL ORDER BY MySQL INSERT INTO MySQLNULL値 MySQL UPDATE MySQLDELETE MySQL LIMIT MySQLMINおよびMAX MySQL COUNT、AVG、SUM MySQL LIKE MySQLワイルドカード MySQL IN MySQL BETWEEN MySQLエイリアス MySQLが参加します MySQL内部結合 MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN MySQL自己結合 MySQL UNION MySQL GROUP BY MySQL HAVING MySQLが存在します MySQL ANY、ALL MySQL INSERT SELECT MySQLケース MySQLヌル関数 MySQLコメント MySQL演算子

MySQLデータベース

MySQL Create DB MySQLドロップDB MySQLテーブルの作成 MySQLドロップテーブル MySQL ALTER TABLE MySQLの制約 MySQLはNullではありません MySQLユニーク MySQLプライマリキー MySQL外部キー MySQLチェック MySQLのデフォルト MySQL CreateIndex MySQL自動インクリメント MySQLの日付 MySQLビュー

MySQLリファレンス

MySQLデータ型 MySQL関数

MySQLの

MySQLの例 MySQLクイズ MySQL演習

MySQLCASEステートメント_


MySQLCASEステートメント

CASEステートメントは条件を通過し、最初の条件が満たされたときに値を返します(if-then-elseステートメントのように)したがって、条件が真になると、読み取りを停止して結果を返します。ELSE真の条件がない場合は、句の値を返します。

パーツがなくELSE、条件が真でない場合は、NULLを返します。

CASE構文

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

デモデータベース

以下は、Northwindサンプルデータベースの「OrderDetails」テーブルからの抜粋です。

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40


MySQLCASEの例

次の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の場合は、国別に並べ替えます。

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);