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

スポンサーリンク

説明

配列にある重複値を除外する

 

引数

引数1(integer[]):数値の配列

 

返り値

重複した値を除外した配列

 

コード

注意

範囲選択でコピーした場合、行数までコピーされてしまうケースがあるので注意してください。

PgSQLの文字から2つ左のアイコンをクリックし、Ctrl+Cでコピーするとうまくいきます。

※コードの白黒画面を戻す場合は「<>」ボタンを押してください。

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}