【PostgreSQL】配列が全て空かチェックする

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(空でない)

 

他にもこんな関数があります(配列操作の関数)

配列に特定の文字列が含まれるかをチェックする

2つの配列を結合する