SQLでif条件を書く方法

※当サイトではアフィリエイト広告を利用しています

SQLを使う際、特定の条件に基づいて値を選択、表示、計算することは非常に一般的です。

ここでは、主要なデータベースであるOracle、MySQL、およびPostgreSQLでのIF条件の使い方を取り上げます。

Oracleのif文

Oracleでは、CASE文やDECODE関数を使うことが主流です。

ただし、PL/SQLブロックの中で条件分岐としてIF文を使用することもできます。

SELECT文内のCASE文のサンプル

SELECT a1,
       CASE 
           WHEN wage > 50000 THEN 'High'
           ELSE 'Low'
       END AS wage_category
FROM table_name;

PL/SQLのIF文のサンプル

BEGIN
   IF some_variable = 'A' THEN
      -- 処理A
   ELSE
      -- 処理B
   END IF;
END;

MySQLのif文

MySQLではCASE文とIF関数を使用できます。

SELECT文内のCASE文のサンプル

SELECT given_name, family_name,
       CASE 
           WHEN wage > 50000 THEN 'High'
           ELSE 'Low'
       END AS wage_category
FROM staff_info;

SELECT文内のIF文のサンプル

SELECT given_name, family_name,
       IF(wage > 50000, 'High', 'Low') AS wage_category
FROM staff_info;

PostgreSQLのif文

PostgreSQLでは、SQLのクエリ内での条件はCASE文で書きますが、PL/pgSQLのブロック内ではIF文も利用可能です。

SELECT文内のCASE文の例

SELECT given_name, family_name,
       CASE 
           WHEN wage > 50000 THEN 'High'
           ELSE 'Low'
       END AS wage_category
FROM staff_info;

PL/pgSQLのIF文の例

BEGIN
   IF some_variable = 'A' THEN
      -- 処理A
   ELSE
      -- 処理B
   END IF;
END;

コメント