Ersetzen Sie die NULL-Werte in ein array in PostgreSQL
WÄHLEN SIE ARRAY[1,2,3] - ARRAY[5,NULL,6]
Ich bin mit contrib _int.sql-Paket für array-Operationen in postgresql 8.4
In der Abfrage gibt es eine NULL
Sie auf der rechten Seite array. Aufgrund dieser NULL-Wert, wirft es einen Fehler:
"ERROR: array must not contain nulls"
Kann mir jemand helfen, entfernen Sie die ungültigen Werte aus dem array?
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) Arrays kann NULL-Werte enthalten, in PostgreSQL 8.4+
2), Aber Sie nicht subtrahieren ein ARRAY vom anderen standard-PostgreSQL-8.4.
3) Sie kann tun, dass in PostgreSQL 8.4 mit der contrib-Paket "intarray" installiert.
4), Aber Sie nicht subtrahieren-arrays, die NULL-Werte.
5) Sie kann Subtraktion von arrays in Ruby. Sehen hier in der Anleitung, oder hier auf SO.
Lösung zu ersetzen, die Null-Werte in ein integer-array in PostgreSQL:
Postgres 9.3 oder später hat
array_replace(anyarray, NULL, anyelement)
für alle array. Die manuelle.In älteren Versionen:
unnest()
eingeführt wurde mit PostgreSQL 8.4Für ältere Versionen können Sie
generate_series()
:Nennen:
Haftungsausschluss: beide Versionen sind nicht geeignet für mehrdimensionale arrays.