LINUX.ORG.RU

История изменений

Исправление Toxo2, (текущая версия) :

Если ли операция или функция убрать из массива элементы другого массива, то есть array[1,2,3] - array[1,4] -> array[2,3]?

Написал для вас:

CREATE OR REPLACE FUNCTION public.array_sub(pa1 anyarray, pa2 anyarray)
RETURNS anyarray
STRICT IMMUTABLE LANGUAGE SQL
AS
$function$
	SELECT
		array_agg(a1.e)
	FROM 
		UNNEST(pa1) a1(e)
		LEFT JOIN UNNEST(pa2) a2(e)
			ON	a1.e = a2.e
	WHERE
			a2.e IS NULL
	;
$function$
;

Исходная версия Toxo2, :

Если ли операция или функция убрать из массива элементы другого массива, то есть array[1,2,3] - array[1,4] -> array[2,3]?

Написал для вас:

CREATE OR REPLACE FUNCTION public.array_sub(pa1 anyarray, pa2 anyarray)
RETURNS anyarray
STRICT IMMUTABLE LANGUAGE SQL
AS
$function$
	SELECT
		array_agg(a1.e)
	FROM 
			UNNEST(pa1) a1(e)
	LEFT JOIN UNNEST(pa2) a2(e)
				ON
		a1.e = a2.e
	WHERE
			a2.e IS NULL
	;
$function$
;