見出し画像

SQLの「CASE文」 - 条件に応じて結果をわける

SQLのCASE文は、特定の条件を評価し、条件に応じた結果を返すことができます。

一般的なCASE文の構文

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE else_result
END
  • WHEN: 条件式を指定。この条件式が真である場合、その次に指定された結果が返されます。

  • THEN: 条件が真である場合に返される結果

  • ELSE: すべての条件が偽の場合に返されるデフォルトの結果

  • END: CASE文の終了

CASE文を使用したクエリの例

以下のテーブルをサンプルとして使います。

productsテーブル

例1:商品の在庫状況に応じた注文可否

SELECT
    product_name,
    stock_quantity,
    CASE
        WHEN stock_quantity > 0 THEN '注文可'
        ELSE '在庫切れ'
    END AS order_status
FROM
    products;

抽出結果は以下になります。

全て注文可

例2:商品カテゴリに応じたセール対象判断

SELECT 
  product_name
 , category
 , CASE 
    WHEN category = 'Electronics' 
     THEN 'セール対象' 
    WHENcategory = 'Clothing' 
     THEN 'セール対象' 
    ELSE '通常価格' 
  END AS sale_status 
FROM 
  products;

抽出結果は以下になります。

ElectoronicsとClothingのみセール対象

例3:商品名の長さに応じたカテゴリ分類

商品名の長さに応じて商品カテゴリを分類するクエリを作成します。

SELECT 
  product_name
 , CASE 
    WHEN LENGTH(product_name) <= 5 
      THEN '短めの商品' 
    WHEN LENGTH(product_name) <= 10 
      THEN '普通の商品' 
    ELSE '長めの商品' 
  END AS category_class 
FROM
  products;

抽出結果は以下になります。

この記事が気に入ったらサポートをしてみませんか?