【PostgreSQL】配列の重複値を除外する

2020年11月19日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}