【PostgreSQL】IF文の書き方(条件分岐)
IF文の書き方
PostgreSQLでのif文の書き方を紹介します。
-- 1.単純なif文
if 条件文 then
--条件を満たすときの処理を書く
end if;
-- 2.if文とそれ以外(else)の書き方
if 条件文 then
--条件を満たすときの処理を書く
else
--それ以外の場合の処理を書く(else thenではない点に注意)
end if;
-- 3. AND(AかつBの時)の書き方
if (条件文1) and (条件文2) then
--条件を満たすときの処理を書く
end if;
-- 4. OR(AまたはBの時)の書き方
if (条件文1) or (条件文2) then
--条件を満たすときの処理を書く
end if;
-- 5.複数の条件の書き方
if 条件文1 then
--条件1を満たすときの処理を書く
elseif 条件文2 then
--条件2を満たすときの処理を書く
else
--それ以外の場合の処理を書く
end if;
ちなみにif文は関数(FUNCTION)で使用可能ですが、SELECT文では使えません。
SELECT文ではCASE文を使います。CASE文の使い方はこちら。
IF文の書き方(実例)
if文の実例です。
-- 1.単純なif文
if num1 = 1 then
return 0; --変数num1が1だったら0でリターンする
end if;
-- 否定形には「!=」を使う
if num1 != 1 then
return 0; --変数num1が1でなければ0でリターンする
end if;
-- 大なりイコールは「>=」を使う
if num1 >= 0 then
return true;
end if;
-- 小なりイコールは「<=」を使う
if num1 <= 0 then
return false;
end if;
-- 2.if文とそれ以外(else)の書き方
if num1 = 1 then
return true; --変数num1が1だったらtrueでリターンする
else
return false; --変数num1が1以外ならばfalseでリターンする
end if;
-- 3. AND(AかつBの時)の書き方
if (bool1 = true) and (moji = 'abc') then
return true;
end if;
-- 4. OR(AまたはBの時)の書き方
if (bool1 = true) and (moji = 'abc') then
return true;
end if;
-- 5.複数の条件の書き方
if num1 = 1 then
return 0; --変数num1が1だったら0でリターンする
elseif num1 = 2 then
return 1; --変数num1が2だったら1でリターンする
else
return -1; --変数num1が1,2以外だったら-1でリターンする
end if;
変数の中身を確認する方法
if文とはほぼ関係ないですが、関数で実行中に変数の中身を確認したい場合があると思います。
それにはraiseを使う方法があり、こちらの記事で紹介しています。是非ご覧ください。