Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 05 April 2018 15:35

geomou
Participant actif
Date d'inscription: 9 Apr 2012
Messages: 80

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: 80

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

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

Re: QGIS: Etiquettes avec condition

is NOT NULL doit faire l'affaire


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

Hors ligne

 

#5 Thu 05 April 2018 15:52

geomou
Participant actif
Date d'inscription: 9 Apr 2012
Messages: 80

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

tijan
Participant occasionnel
Date d'inscription: 26 May 2009
Messages: 26
Site web

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: 80

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: 3799

Re: QGIS: Etiquettes avec condition

Bonjour,
Et puisqu'on en est à découvrir des fonctions big_smile , 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

 

Pied de page des forums

Powered by FluxBB