#1 Thu 05 April 2018 15:35
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
QGIS: Etiquettes avec condition
Bonjour,
Je souhaiterais concaténer 2 champs. Cela fonctionne très bien sauf si un des champ est vide. Dans ce cas, aucune étiquette ne s'affiche.
Je pense qu'il faut utiliser des opérateurs logicues : CASE, WHEN, THEN et END. Mais l'expression est invalide.
Voici ce que j'ai encodé :
CASE
WHEN "Aile" THEN "Code_Archi" || '\n' || "Aile"
WHEN "Aile" NOT ' ' THEN "Code_Archi"
END
En clair, ce que j'essaie de faire, c'est que le nom du batiment avec le n° d'aile s'affichent sur 2 lignes mais quand le champ "aile" est vide, il n'affiche que le n° du bâtiment.
Quelqu'un peut-il m'aider ?
Hors ligne
#2 Thu 05 April 2018 15:37
- hcad
- Participant occasionnel
- Date d'inscription: 13 Feb 2008
- Messages: 10
Re: QGIS: Etiquettes avec condition
Bonjour,
Il faut mettre une valeur dans les champs vides, sinon ça ne fonctionnera pas.
Hors ligne
#3 Thu 05 April 2018 15:40
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Etiquettes avec condition
Merci pour ta réponse rapide hcad mais ne pourrait-on pas dire que la valeur doit être différente de NULL, par exemple ?
Si tel est le cas, comment l'exprimer ?
Hors ligne
#4 Thu 05 April 2018 15:44
Re: QGIS: Etiquettes avec condition
is NOT NULL doit faire l'affaire
Hors ligne
#5 Thu 05 April 2018 15:52
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Etiquettes avec condition
Fabuleux Pierre-André...C'est exactement ce que je cherchais.
Un tout grand merci :-)
Hors ligne
#6 Thu 05 April 2018 21:46
Re: QGIS: Etiquettes avec condition
La fonction coalesce est là exactement pour cela, et il faut prendre l'habitude de l'utiliser systématiquement, dès lors qu'on n'a pas la certitude absolue qu'un champ ne sera jamais vide :
Dans ton cas :
Code:
coalesce("Code_Archi", '?') || coalesce("Aile", '?')
Si "Aile" est vide, alors un point d'interrogation s'affichera, et l'étiquette sera visible (bien entendu, tu peux mettre autre chose que le point d'interrogation).
C'est plus adapté que le CASE WHEN etc. IS NOT NULL ;
Hors ligne
#7 Fri 06 April 2018 09:03
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Etiquettes avec condition
Merci tijan...Je ne connaissais pas cette fonction.
Belle journée
Hors ligne
#8 Fri 06 April 2018 10:10
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Etiquettes avec condition
Bonjour,
Et puisqu'on en est à découvrir des fonctions , concat est encore mieux:
Code:
concat ("Code_Archi", "Aile")
ne renverra null que si les deux sont null.
Dernière modification par SANTANNA (Fri 06 April 2018 10:13)
Hors ligne