【PostgreSQL】2つの配列を結合する
2つの配列を結合する
2つの配列を結合する関数です。
(片方の配列の後ろにもう一つの配列を挿入し、一つの配列にする)
引数
引数1(character varying[]):結合する配列1(こちらの配列の後に↓の配列を挿入します)
引数2(character varying[]):結合する配列2
返り値
結合後の配列
コード(そのまま実行できます)
CREATE OR REPLACE FUNCTION array_merge(
character varying[],
character varying[])
RETURNS character varying[] AS
$BODY$
declare
a_array1 alias for $1; --引数1:結合する配列1(こちらの配列の後に↓の配列を挿入します)
a_array2 alias for $2; --引数2:結合する配列2
a_merge_array character varying[];
i_maxcount integer;
c_temp character varying;
BEGIN
i_maxcount = array_length(a_merge_array,1) + array_length(a_array2,1) ;
a_merge_array = a_array1;
for cnt in 1..array_length(a_array2,1)
loop
a_merge_array[array_length(a_array1,1) + cnt] = a_array2[cnt];
end loop;
return a_merge_array;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION array_merge(character varying[], character varying[])
OWNER TO postgres;
※PostgreSQL12で動作確認済み
実行例
select * from array_merge(array['1','2','3'],array['a','b','c','d','e']);
--【結果】"1,2,3,a,b,c,d,e"
他にもこんな関数があります(配列操作の関数)