Єдиний спосіб, про який я знаю, - це різновид "хитрості за використання".
Наприклад, у мене є дані, що включають масив номерів властивостей (ім'я атрибута propnum_array
, dtype varchar[]
), і я іноді хочу визначити будь-які дані, де масив порожній.
Тестування на propnum_array = {}
або propnum_array is null
або propnum[0]=''
(або будь-які інші варіанти цього типу теми) робить QGIS-проникненням, однак я можу робити regexp_match( propnum_array,'\\d')
або propnum_array ilike '{""}'
або propnum_array = '{""}'
розділяти дані на речі, які не є порожніми, propnum_array
і речі, які не мають.
Це означає, що якщо масиви мають структуру (наприклад, конкретні значення для конкретних елементів масиву), ви можете сканувати такі: якщо ви хочете, щоб усі значення, де другим елементом у 3-елементному масиві є "Y", то ви хочете чогось подібного regexp_match( propnum_array,'[,]*\'Y\'\[,]*')
(майже впевнений, що вам потрібно уникнути коми і однозначних внутрішніх лапок до рядка відповідності, але це корисний випадок, коли хтось інший повинен турбуватися).
Те, що propnum_array ilike '{""}'
працює, здається, вказує на те, що QGIS трактує масиви так, ніби їх текст. Крім того, це може примусити їх передавати текст на ходу, якщо потрібно, але тоді не буде сенсу недокументовані типи масивів (AFAIK). Мені не вдалося знайти жодного документа з обробки масиву, і ще в січні 2015 року є запитання в списку розсилки osgeo-qgis.
Я думаю, головний натяк на те, що в редакторі виразів відсутні функції масиву, хоча я розумію, що плагін "Маска введення даних, керований даними" мав обробку масиву з версії 1.0.0 (лютий 2015 р.).