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

2021年2月6日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'とする
-- ※ XXXに文字列を入れて実行
select case 
when XXX is null then 'a' 
when XXX = '' then 'b' 
else 'c' end;