【PostgreSQL】IF文の書き方(条件分岐)

2021年8月8日PostgreSQL構文

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を使う方法があり、こちらの記事で紹介しています。是非ご覧ください。