L'unico modo di cui sono a conoscenza è una specie di "kludge per uso".
Ad esempio, ho dati che includono una matrice di numeri di proprietà (nome dell'attributo propnum_array
, tipo varchar[]
) e talvolta desidero identificare tutti i dati in cui la matrice è vuota.
Testare per propnum_array = {}
o propnum_array is null
o propnum[0]=''
(o qualsiasi altra variazione su quel tipo di tema) rende gag QGIS, tuttavia posso fare regexp_match( propnum_array,'\\d')
o propnum_array ilike '{""}'
o propnum_array = '{""}'
e partizionare i dati in cose che non sono vuote propnum_array
e cose che non hanno.
Ciò significa che se gli array hanno una struttura (ad esempio valori specifici in corrispondenza di elementi specifici nell'array), è possibile eseguire la scansione per quelli: se si desidera tutti i valori in cui il secondo elemento in un array a 3 elementi è 'Y', allora vorrai qualcosa del genere regexp_match( propnum_array,'[,]*\'Y\'\[,]*')
(abbastanza sicuro che devi sfuggire alle virgole e alle virgolette singole interne alla stringa di corrispondenza, ma che è un caso d'uso di cui qualcun altro deve preoccuparsi).
Il fatto che propnum_array ilike '{""}'
funzioni, sembra indicare che QGIS considera gli array come se fossero testo. In alternativa, se necessario, può essere trasmesso al testo al volo, ma non avrebbe senso che i tipi di array non siano documentati (AFAIK). Non sono stato in grado di trovare alcun documento sulla gestione dell'array e ci sono domande sulla mailing list di osgeo-qgis fino a gennaio 2015.
Suppongo che il suggerimento principale sia che non ci sono funzioni di array nell'editor delle espressioni, anche se capisco che il plug-in 'Data Driven Input Mask' ha avuto la gestione degli array dalla v1.0.0 (febbraio 2015).