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?

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",'')

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.