Отображение нескольких полей в виде меток, если одно поле является пустым в QGIS?

13

У меня возникают проблемы при попытке показать несколько полей для одного ярлыка в QGIS. В QGIS2.6 попытка отобразить метки для объекта, состоящего из нескольких полей, приводит к пустой метке, если одно из полей является нулевым. Так, например, в диалоге выражения метки:

concat("Temp Site",'\n',"Notes",'\n',"Function")

будет функционировать нормально, если только одно из полей не равно NULL, тогда метка не будет отображаться. Используя '||' Оператор вместо этого в диалоге выражения также приводит к тому же самому поведению:

"Temp Site" || '\n'  ||  "Notes" || '\n'  ||  "Function"

Есть ли способ отобразить метки, даже если одно из полей пустое?

kilolima
источник

Ответы:

20

Используйте функцию «Объединить». Coalesce получает первое ненулевое значение из своих аргументов. Так что это выражение должно работать:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')
ndawson
источник
1
Вы также можете обернуть новую строку внутри функции coalesce, если имеет смысл избегать пустых строк в середине метки, я использовал выражение вродеcoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher