PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Biginteger-Array-Funktionen


Sie können Ihre eigene Funktion ersetzen. Dieser ist ziemlich schnell:

CREATE OR REPLACE FUNCTION arr_subtract(int8[], int8[])
  RETURNS int8[] AS
$func$
SELECT ARRAY(
    SELECT a
    FROM   unnest($1) WITH ORDINALITY x(a, ord)
    WHERE  a <> ALL ($2)
    ORDER  BY ord
    );
$func$  LANGUAGE sql IMMUTABLE;

Aufruf:

SELECT arr_subtract('{3,5,6,7,8,9}':: int8[], '{3,4,8}'::int8[]);

Ergebnis:

{5,6,7,9}

Behält die ursprüngliche Reihenfolge des Arrays bei.

Verwandte:

  • PostgreSQL unnest() mit Elementnummer
  • Übereinstimmende Array-Elemente ausschließen