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;
コメント