Wyświetlanie wielu pól jako etykiet, jeśli jedno pole jest puste w QGIS?

13

Mam problemy z wyświetleniem wielu pól dla jednej etykiety w QGIS. W QGIS2.6 próba wyświetlenia etykiet dla funkcji składającej się z wielu pól skutkuje pustą etykietą, jeśli jedno z pól jest puste. Na przykład w oknie dialogowym wyrażenia etykiety:

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

będzie działał normalnie, chyba że jedno z pól ma wartość null, wówczas nie wyświetla się żadna etykieta. Korzystanie z „||” operator zamiast tego w oknie dialogowym wyrażenia powoduje również takie samo zachowanie:

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

Czy istnieje sposób wyświetlania etykiet, nawet jeśli jedno z pól jest puste?

kilolima
źródło

Odpowiedzi:

20

Użyj funkcji „Coalesce”. Coalesce bierze pierwszą niepustą wartość ze swoich argumentów. To wyrażenie powinno działać:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')
ndawson
źródło
1
Możesz także zawinąć nową linię w funkcję koalescencji, jeśli ma sens unikanie pustych linii na środku etykiety, użyłem wyrażenia typucoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher