【PostgreSQL】文字列が空であるかのチェック

PostgreSQL自作関数

文字列が空であるかのチェックする

文字列が空であるかのチェックする関数です (nullも空と判定します)。

関数の必要はなく、case文で処理する方法こちら

 

引数

引数1(character varying): 対象の文字列

 

返り値

true:空 false:空でない

 

コード

CREATE OR REPLACE FUNCTION isempty(
	c_target character varying)
    RETURNS boolean
    LANGUAGE 'plpgsql' COST 100 VOLATILE 
    
AS $BODY$
declare
	b_flg		boolean:=false; 
BEGIN

	--初期値セット
	b_flg = false;

	--""のチェック
	if trim(c_target) = '' then
		b_flg = true;
	end if;

	--nullチェック
	if c_target is null then
		b_flg = true;
	end if;

	return b_flg;

END;
$BODY$;

※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら

 

 

実行例

select isempty(null);    -- true(判定:空)
select isempty('');      -- true(判定:空)
select isempty('abc');   -- false(判定:空でない)

 

 

case文

関数の必要はなく、case文で処理するならこの例を参考にして下さい。

そのまま実行できるので、'ここにチェックする文字を入れる'の箇所を変えて実行してみて下さい。

-- nullの時:'a' , 空文字の時:'b' , それ以外は'c'とする
select case 
when 'ここにチェックする文字を入れる' is null then 'a' 
when 'ここにチェックする文字を入れる' = '' then 'b' 
else 'c' end;