Hallo Frank,

ich habe mein Problem nun mit folgender WHERE Klausel gelöst:

WHERE TRUE = ALL (SELECT UNNEST(feld) IS NULL)

Das scheint nach ersten Tests auch zu funktionieren ;)

Schöne Grüße,

Reinhard

Am 27.02.2018 14:22 schrieb R. Reiterer:
Achso, ich habe kein leeres Array, sondern ein Array mit einem
einzelnen Nullwert. Aus dieser Perspektive wird manches klarer.

Schöne Grüße, Reinhard

Am 27.02.2018 13:37 schrieb R. Reiterer:
Hallo Frank,

danke für deine Antwort. Die {NULL} Werte stammen aus einer räumlichen
Abfrage mit Geometrien aus einer zweiten Tabelle. Wo die WHERE
Bedingung nicht erfüllt ist, erhalte ich {NULL}. Ansonsten wird aus
den Werden der betroffenen Geometrien aus Tabelle 2 ein Array erzeugt.

Dein Lösungsvorschlag erscheint vielversprechend. Ich kann ihn am WE
testen und melde mich dann nochmal.

Schöne Grüße, Reinhard

Am 27.02.2018 09:44 schrieb Frank Broniewski:
Moin,

'{NULL}' ist irgendwie komisch, aber egal. Wenn es dir genau nur um
'{NULL}' geht, und nicht um irgendeinen NULL Wert im Array, kannst du
das folgendermaßen lösen:

Folgende Tabelle als Test:
CREATE TABLE public.test_empty_array
(
id integer NOT NULL DEFAULT nextval('test_empty_array_id_seq'::regclass),
  text character varying[],
  zahl bigint[],
  CONSTRAINT pk_test_id PRIMARY KEY (id)
)

Hier die Werte
1;"{foo,bar,baz}";"{1,2,3,4,5}"
2;"{}";"{}"
3;"{NULL}";"{NULL}"

SQL
select *, text[1] is null, zahl[1] is null from test_empty_array;

Abfrageergebnis
1;"{foo,bar,baz}";"{1,2,3,4,5}";f;f
2;"{}";"{}";t;t
3;"{NULL}";"{NULL}";t;t

'Feld[1] is null' sollte also dein Problem lösen

HTH
Frank

Dipl. Geogr. Frank Broniewski
Waldhölzbacher Str. 51
66679 Losheim am See
06872 509 068 4
0176 611 26 9 2 6
www.frankbroniewski.com

-----Ursprüngliche Nachricht-----
Von: FOSSGIS-Talk-Liste [mailto:fossgis-talk-liste-boun...@fossgis.de]
Im Auftrag von R. Reiterer
Gesendet: Montag, 26. Februar 2018 23:17
An: Fossgis talk liste <fossgis-talk-liste@fossgis.de>
Betreff: [FOSSGIS-Talk] Leere Arrays in PostgreSQL abfragen

Hallo,

ich habe in PostgreSQL/PostGIS leere (?) Arrays, welche in der QGIS
DB-Verwaltung als {NULL} dargestellt werden.

Leider gelingt es mir nicht, diese Datensätze mit {NULL} Arrays abzufragen.

Was ich bereits probiert habe:

WHERE feld = '{}' -- cannot switch from manual field specification to
automatic field numbering WHERE array_length(feld, 1) = 0 WHERE
cardinality(feld) = 0

array_lenght(feld, 1) und cardinality(feld) geben jeweils '1' für
{NULL} Arrays aus.

Hat jemand einen Tipp für mich?

Schöne Grüße und vielen Dank, Reinhard


--
....................................................................
FOSSGIS 2018, die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Bonn!
21.-24. März 2018 an der Universität Bonn https://fossgis-konferenz.de/2018/
18.-25. März OSGeo Code Sprint im BaseCamp Bonn
https://wiki.osgeo.org/wiki/OSGeo_Code_Sprint_2018

FOSSGIS Veranstaltungen 2018
https://www.fossgis.de/node/306

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
--
....................................................................
FOSSGIS 2018, die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Bonn!
21.-24. März 2018 an der Universität Bonn
https://fossgis-konferenz.de/2018/
18.-25. März OSGeo Code Sprint im BaseCamp Bonn
https://wiki.osgeo.org/wiki/OSGeo_Code_Sprint_2018

FOSSGIS Veranstaltungen 2018
https://www.fossgis.de/node/306

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
--
....................................................................
FOSSGIS 2018, die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Bonn!
21.-24. März 2018 an der Universität Bonn
https://fossgis-konferenz.de/2018/
18.-25. März OSGeo Code Sprint im BaseCamp Bonn
https://wiki.osgeo.org/wiki/OSGeo_Code_Sprint_2018

FOSSGIS Veranstaltungen 2018
https://www.fossgis.de/node/306

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
--
....................................................................
FOSSGIS 2018, die Konferenz für Open Source GIS mit OpenData und
OpenStreetMap in Bonn!
21.-24. März 2018 an der Universität Bonn
https://fossgis-konferenz.de/2018/
18.-25. März OSGeo Code Sprint im BaseCamp Bonn
https://wiki.osgeo.org/wiki/OSGeo_Code_Sprint_2018

FOSSGIS Veranstaltungen 2018
https://www.fossgis.de/node/306

FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste

Antwort per Email an