4 Stimmen

Biginteger-Array-Funktionen

Gibt es irgendwelche Funktionen für die Arbeit mit großen ganzen Zahlen?

Ich habe ein Modul gefunden intarray aber die Funktionen dieses Moduls funktionieren nur mit integer , nicht bigint .

Ich vermisse eine Funktion zum Entfernen eines Elements aus einem Array. So etwas wie die Implementierung eines "Minus"-Operators in besagtem Modul:

int[] - int (Einträge, die dem rechten Argument entsprechen, aus dem Array entfernen)

5voto

Erwin Brandstetter Punkte 530399

Aktualisiert 2015 mit einer besseren Version.
Sie können Ihre eigene Funktion ersetzen. Diese ist relativ 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;

Anrufen:

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.

Verwandt:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X