Message posté par : SANTANNA
----------------------------------------
Bonjour,
-----------------
Ilyas écrit :
if("numero" '' AND "numero" 0,
to_string(right("numero", strpos("numero", '-')-1)),’999’)
-----------------
Vous êtes certain que QGIS ne se plaint pas d'une mauvaise syntaxe (pour la partie
conditionnelle)?
Cela dit, j'ai testé votre code sans la partie conditionnelle et je ne tombe pas sur
les résultats que vous mentionnez. Modification de code entre-temps?
Une "bonne" manière de débugger les expressions soi-même est de les prendre
petit bout par petit bout, de la fonction la plus simple (à l'intérieur) à la globale
(avec lecture de l'aide de ladite fonction), càd:
1/ que renvoie strpos("numero", '-'): la place du caractère '-'
dans le texte '321654-98' par ex, soit 7
2/ strpos("numero", '-')-1 ==> 7-1 ==> 6
3/ right("numero", strpos("numero", '-')-1) ==>
right("numero", 6) ==> revient à demander les 6 caractères les plus à droite
dans le texte, soit 654-98
4/ Le reste est de la conversion donc je passe vu que l'extraction retenue n'est
pas bonne
Essayez donc avec right("numero", length("numero") -
strpos("numero", '-')) car ce que vous voulez, ce sont les x caractères
restants à partir du numéro occupé par '-', et donc on soustrait sa position du
nombre total de caractères (qui est variable, donc on calcule)
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=333507#p333507
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net