【PostgreSQL】配列が全て空かチェックする
配列が全て空かチェックする
配列の中身が全て空なのかチェックする
(Nullまたは""の時、空であると判定します。)
引数
引数1(character varying[]):チェックする配列
返り値
True:全て空である、False:空でない
コード
CREATE OR REPLACE FUNCTION check_empty_array(character varying[])
RETURNS boolean AS
$BODY$
declare
a_array alias for $1; -- 引数1:チェックする配列
b_flg boolean; -- True:全て空である、False:空でない
begin
b_flg = true;
for loop_count in 1..array_length(a_array,1)
loop
--Nullまたは""の時、空であると判定
if (a_array[loop_count] = '') or (a_array[loop_count] is null) then
else
b_flg = false;
end if;
end loop;
return b_flg;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION check_empty_array(character varying[])
OWNER TO postgres;
※ PostgreSQL12で動作確認済み
実行例
select * From check_empty_array(array['',null,null,'']);
-- true(空である)
select * From check_empty_array(array['a','b','c']);
-- false(空でない)
他にもこんな関数があります(配列操作の関数)