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?

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.