SQLにおけるWHERE句での条件分岐(IF-ELSE)の使用方法


一般的な方法として、CASE文を使用して条件分岐を実装することができます。以下に例を示します。

SELECT column1, column2, ...
FROM table
WHERE
  CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
  END

上記の例では、条件1が真の場合はresult1が評価され、条件2が真の場合はresult2が評価されます。いずれの条件も真ではない場合は、resultNが評価されます。

具体的なコード例として、以下のような状況を考えてみましょう。顧客テーブルには「age」という列があり、年齢が30歳未満の場合は「Young」と表示し、30歳以上の場合は「Adult」と表示したいとします。

SELECT name, age,
  CASE
    WHEN age < 30 THEN 'Young'
    ELSE 'Adult'
  END AS age_category
FROM customers

上記の例では、CASE文を使用して「age_category」という別名の列を作成し、年齢に基づいて条件分岐を行っています。

条件分岐を使用することで、さまざまな条件に基づいてクエリの結果を制御することができます。是非、必要な条件分岐の例を追加で教えてください。