Afficher plusieurs champs sous forme d'étiquettes si un champ est nul dans QGIS?

13

J'ai des problèmes pour essayer d'afficher plusieurs champs pour une seule étiquette dans QGIS. Dans QGIS2.6, la tentative d'affichage d'étiquettes pour une entité composée de plusieurs champs entraîne une étiquette vide si l'un des champs est nul. Ainsi, par exemple, dans la boîte de dialogue d'expression d'étiquette:

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

fonctionnera normalement à moins que l'un des champs ne soit nul, alors il n'en résulte aucune étiquette affichée. Utilisation du '||' L'opérateur à la place dans la boîte de dialogue d'expression a également le même comportement:

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

Existe-t-il un moyen d'afficher les étiquettes même si l'un des champs est nul?

kilolima
la source

Réponses:

20

Utilisez la fonction "Coalesce". Coalesce prend la première valeur non nulle de ses arguments. Donc, cette expression devrait fonctionner:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')
ndawson
la source
1
Vous pouvez également envelopper la nouvelle ligne dans la fonction de fusion, s'il est logique d'éviter les lignes vides au milieu de l'étiquette J'ai utilisé une expression commecoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
Brian Fisher