Der einzige Weg, den ich kenne, ist eine Art "Pro-Use-Kludge".
Zum Beispiel habe ich Daten, die ein Array von Eigenschaftsnummern (Attributname propnum_array
, dtype varchar[]
) enthalten, und ich möchte manchmal Daten identifizieren, bei denen das Array leer ist.
Das Testen auf propnum_array = {}
oder propnum_array is null
oder propnum[0]=''
(oder andere Variationen dieser Art von Thema) macht QGIS-Gag, aber ich kann regexp_match( propnum_array,'\\d')
oder propnum_array ilike '{""}'
oder propnum_array = '{""}'
und die Daten in Dinge aufteilen, die nicht leer sind propnum_array
und Dinge, die nicht leer sind .
Dies bedeutet, dass Sie, wenn die Arrays eine Struktur haben (z. B. bestimmte Werte an bestimmten Elementen im Array), nach diesen suchen können: Wenn Sie alle Werte möchten, bei denen das zweite Element in einem Array mit drei Elementen 'Y' ist, dann Sie möchten so etwas wie regexp_match( propnum_array,'[,]*\'Y\'\[,]*')
(ziemlich sicher, dass Sie die Kommas und einfachen Anführungszeichen innerhalb der Übereinstimmungszeichenfolge umgehen müssen, aber das ist ein Anwendungsfall, über den sich jemand anderes Sorgen machen muss).
Die Tatsache, dass dies propnum_array ilike '{""}'
funktioniert, scheint darauf hinzudeuten, dass QGIS Arrays so behandelt, als wären sie Text. Alternativ könnten sie bei Bedarf auch im laufenden Betrieb in Text umgewandelt werden. Dann wäre es jedoch nicht sinnvoll, Array-Typen ohne Dokumentation (AFAIK) zu verwenden. Ich konnte noch keine Dokumente zur Array-Handhabung finden, und es gibt noch Fragen zur osgeo-qgis-Mailingliste im Januar 2015.
Ich denke, der wichtigste Hinweis ist, dass der Ausdruckseditor keine Array-Funktionen enthält, obwohl ich verstehe, dass das Plugin 'Data Driven Input Mask' seit Version 1.0.0 (Februar 2015) eine Array-Behandlung hat.