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

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Mon 16 December 2024 12:40

Thomas 37
Juste Inscrit !
Date d'inscription: 16 Dec 2024
Messages: 1

QGIS: Soucis de cumul de Null pour afficher une Etiquette

Bonjour à tous,

J'ai un petit soucis d'étiquette dans QGIS :
Je veux afficher des étiquettes qui cumulent 3 champs texte (NOM, LONG, RMQ)
Dans certains cas le champ LONG peut être NULL, le CHAMPS RMQ peut être NULL et enfin ces 2 champs peuvent être NULL

Voici la synthaxe que j'ai utilisé :

Code:

Case

When "LONG" is NULL then  "NOM"  || 'n'  ||   "RMQ" 

When  "RMQ" is NULL then  "NOM"  || 'n'  ||   "LONG" 

WHEN "LONG" is null  and "RMQ" is NULL then "NOM" --> [b]cela ne fonctionne pas  [/b]

Else  "TITRE_ETI"  ||  'n'  ||  "LG_SURF_ET"  ||  'n'  ||  "RMQ" 

END

Je ne sais pas où je me trompe.

Auriez vous la solution à ce problème ?

Merci pour le temps passé à me répondre !

Hors ligne

 

#2 Mon 16 December 2024 14:14

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 129

Re: QGIS: Soucis de cumul de Null pour afficher une Etiquette

Bonjour,

Il ne faut pas utiliser || mais plutôt concat().
|| ne va afficher une solution que si tous les elements sont non null.
concat va laisser un blanc, mais affichera une solution quoiqu'il arrive.

Hors ligne

 

#3 Mon 16 December 2024 14:24

Bruno
Membre du bureau
Lieu: Toulouse
Date d'inscription: 22 Jun 2005
Messages: 11983
Site web

Re: QGIS: Soucis de cumul de Null pour afficher une Etiquette

Bonjour,
Sujet déplacé dans le forum QGIS wink

Hors ligne

 

#4 Mon 16 December 2024 14:58

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1126

Re: QGIS: Soucis de cumul de Null pour afficher une Etiquette

Hors ligne

 

#5 Mon 16 December 2024 16:52

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3959

Re: QGIS: Soucis de cumul de Null pour afficher une Etiquette

Bonjour,
Effectivement, comme dit Tixi, || renvoie NULL si une entrée est NULL mais cela vous l'aviez déjà compris vu que vous passez par un CASE WHEN. Le souci, pour rester dans le type de solution que vous essayez, est l'ordre de vos conditions; la troisième n'est jamais atteinte car pour arriver à

Code:

WHEN "LONG" is null  and "RMQ" is NULL

on passe entre temps par

Code:

When "LONG" is NULL

qui est incluse, donc c'est celle-ci qui s'applique. Donc résultat NULL car RMQ l'est.
Il faudrait modifier l'ordre et passer la double condition de nullité en premier.

Code:

Case
WHEN "LONG" is null  and "RMQ" is NULL then "NOM" # [b]ça fonctionne!!![/b]
When "LONG" is NULL then  "NOM"  || 'n'  ||   "RMQ" 
When  "RMQ" is NULL then  "NOM"  || 'n'  ||   "LONG" 
Else  "TITRE_ETI"  ||  'n'  ||  "LG_SURF_ET"  ||  'n'  ||  "RMQ" 
END

Dernière modification par SANTANNA (Mon 16 December 2024 17:54)

Hors ligne

 

#6 Mon 16 December 2024 17:16

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1166

Re: QGIS: Soucis de cumul de Null pour afficher une Etiquette

Salut,

Code:

regexp_replace(concat("NOM", ', ', "LONG", ', ', "RMQ"), '(^,| ,|,$'), '')

Pratique si on veut rajouter un champ

Code:

regexp_replace(concat("NOM", ', ', "LONG", ', ', "NOUVEAU", ', ', "RMQ"), '(^,| ,|,$'), '')

EDIT: c'est un peu la même chose que la réponse au post sur gisexhange mentionné par GlaDal

Dernière modification par tumasgiu (Tue 17 December 2024 09:37)

Hors ligne

 

Pied de page des forums

Powered by FluxBB