CASE の使用
CASE 式は複数の条件を評価する場合や、条件を満たす単一の値を返す場合に使用されます。たとえば、列の値に応じて代替値を表示することができます。このようなデータ変更は一時的な変更であり、永続的な変更ではありません。
CASE 式は、次によって構成されます。
- CASE キーワード。
- 変換する列の名前。
- 検索するための式を指定する WHEN 句と、それらの式と置き換える式を指定する THEN 句。
- 比較操作の評価がいずれも TRUE でなかった場合に返される式を定義する ELSE 句。
- END キーワード。
- CASE 式の別名を定義するオプションの AS 句。
CASE 式は読み取り可能な値と省略語やコードを置き換える際によく使用されます。次の例では、CASE
関数を使って、よりわかりやすくなるように製品ラインのカテゴリ表示を変更しています。
USE AdventureWorks;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO
もう 1 つの CASE 関数の使用法は、データの分類です。次のクエリは、CASE
関数を使って価格データを分類しています。
USE AdventureWorks;
GO
SELECT ProductNumber, Name, 'Price Range' =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Production.Product
ORDER BY ProductNumber ;
GO
その他の例については、「CASE (Transact-SQL)」を参照してください。
参照
その他の技術情報
CASE (Transact-SQL)
NULLIF (Transact-SQL)
COALESCE (Transact-SQL)