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 Sun 13 January 2019 18:56

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

QGIS: Conditions imbriquées pour créer un attribut

Bonjour à tous,

J'essaie de créer un attribut A
- si l'attribut distance vaut 0 et l’attribut Nom est NULL, A renvoie Pas_appariement
- si l'attribut distance vaut 0 et l’attribut Nom est différent de NULL, A renvoie Appariement géométrique 1m
- si l'attribut distance est différent de 0, A renvoie Pas_appariement

Je me suis lancé d'une condition imbriquée dans une autre (cf. ci-dessous) mais l'expression est invalide

CASE WHEN ("distance" = 0) THEN
(CASE WHEN ("Nom" ilike null) THEN 'Pas_appariement' else 'Appariement géométrique 1m' END)
     ELSE 'Pas_appariement'
END

Si quelqu'un a une idée ...

Un grand merci d'avance.

Hors ligne

 

#2 Mon 14 January 2019 08:08

trovez
Participant occasionnel
Lieu: Nantes
Date d'inscription: 17 Sep 2007
Messages: 24

Re: QGIS: Conditions imbriquées pour créer un attribut

Bonjour,
NULL n'est pas une valeur.
La façon de tester l'état NULL s'écrit :
"Nom" is NULL

Donc testez :

CASE WHEN ("distance" = 0) THEN
(CASE WHEN ("Nom" is null) THEN 'Pas_appariement' else 'Appariement géométrique 1m' END)
     ELSE 'Pas_appariement'
END

Cordialment

Hors ligne

 

#3 Mon 14 January 2019 08:31

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 362

Re: QGIS: Conditions imbriquées pour créer un attribut

écriture plus simple si je comprends bien

Code:

CASE 
     WHEN "distance" = 0 AND "Nom" is NOT null THEN 'Appariement géométrique 1m' 
     ELSE 'Pas_appariement'
END

LJ

Dernière modification par laurent00 (Mon 14 January 2019 08:32)

Hors ligne

 

#4 Tue 15 January 2019 11:00

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Conditions imbriquées pour créer un attribut

Super !!! Un grand merci à vous 2. Les 2 solutions fonctionnent.

Hors ligne

 

#5 Sat 19 January 2019 17:07

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Conditions imbriquées pour créer un attribut

Et ... toujours dans le même registre, je voudrais créer un attribut qui, sous certaines conditions me renvoie la valeur de 2 attributs séparés du caractère "_" (cf. exemple).
J'ai essayé ceci mais ça me renvoie NULL ... (alors que VSDesigna et Nom sont bien 2 attributs valides).

Merci encore ...

CASE
     WHEN "MDApp" ILIKE 'App geom 1m' THEN  "VSDesigna"  ||'_'|| "Nom"
END

Hors ligne

 

#6 Sat 19 January 2019 17:43

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 362

Re: QGIS: Conditions imbriquées pour créer un attribut

bonsoir
avec l'opérateur différent cela se passe t-il mieux ?

Code:

CASE
     WHEN "MDApp" <> 'App geom 1m' THEN  "VSDesigna"  ||'_'|| "Nom"
END

tu peux aussi tester

Code:

if( "MDApp" <> 'App geom 1m' , "VSDesigna"  ||'_'|| "Nom", '')

LJ

Dernière modification par laurent00 (Sat 19 January 2019 22:14)

Hors ligne

 

#7 Sun 20 January 2019 18:51

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Conditions imbriquées pour créer un attribut

En faite, l'attribut Nom suivant les conditions mentionnées était ... vide ... (d'où le renvoi de NULL).
Je m'étais trompé d'attribut et ça fonctionne maintenant.
Merci tout de même de m'avoir à nouveau appris quelque chose (notamment que différent s'écrivait "< >" et que l'on pouvait aussi lancer une condition avec if).
A la prochaine question ...

Hors ligne

 

Pied de page des forums

Powered by FluxBB