13 lines
398 B
Plaintext
13 lines
398 B
Plaintext
create or replace function arrxor(list1, list2) as
|
|
(select array_agg(elements) from
|
|
(select min(arr) as mn, max(arr) as mx, elements from
|
|
( (select 1, unnest(list1))
|
|
union all
|
|
(select 2, unnest(list2)) ) as t(arr, elements)
|
|
group by elements
|
|
having mn = mx) ) ;
|
|
|
|
# Example:
|
|
|
|
select arrxor(['this','is','a','test'], ['also','part','of','a','test'] ) as arrxor;
|