Mehrere Felder als Beschriftungen anzeigen, wenn ein Feld in QGIS null ist?

12

Ich habe einige Probleme beim Versuch, mehrere Felder für ein einzelnes Etikett in QGIS anzuzeigen. In QGIS2.6 führt der Versuch, Beschriftungen für ein Feature anzuzeigen, das aus mehreren Feldern besteht, zu einer leeren Beschriftung, wenn eines der Felder null ist. So zum Beispiel im Dialogfeld für Etikettenausdrücke:

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

funktioniert normal, es sei denn, eines der Felder ist null, dann wird keine Beschriftung angezeigt. Verwenden Sie das '||' Der Operator stattdessen im Ausdrucksdialog führt ebenfalls zu demselben Verhalten:

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

Gibt es eine Möglichkeit, die Beschriftungen anzuzeigen, auch wenn eines der Felder null ist?

Kilolima
quelle

Antworten:

20

Verwenden Sie die Funktion "Zusammenwachsen". Coalesce nimmt den ersten Nicht-Null-Wert aus seinen Argumenten. Dieser Ausdruck sollte also funktionieren:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')
Ndawson
quelle
1
Sie können die neue Zeile auch in die Koaleszenzfunktion einschließen, wenn es sinnvoll ist, die leeren Zeilen in der Mitte des Etiketts zu vermeiden. Ich habe einen Ausdruck wiecoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher