【PostgreSQL】配列の重複値を除外する
配列の重複値を除外する
配列の中で重複値を除外する関数です。
(引数で渡された配列に対し、重複値を1つにまとめ、すべての値が一つずつの状態にします)
引数
引数1(integer[]):数値の配列
返り値
重複した値を除外した配列
コード(そのまま実行できます)
CREATE OR REPLACE FUNCTION exclude_duplicate(integer[])
RETURNS integer[] AS
$BODY$
declare
a_array alias for $1; -- 引数1 : 除外対象の配列(数値)
begin
return array(
SELECT DISTINCT co11 FROM
(
SELECT unnest(a_array) AS co11 order by 1
) AS temp
);
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION exclude_duplicate(integer[]) OWNER TO postgres;
実行例
select * from exclude_duplicate(array[12,23,34,12,23,34,45,56]);
--【結果】:{12,23,34,45,56}