【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;
あわせて読みたい
こちらも参考に