LINUX.ORG.RU

Операции над массивами

 ,


0

1

Использую Postgresql

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

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

Если ли операция или функция убрать из массива элементы другого массива, то есть 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 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 1)