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 sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Wed 24 July 2019 09:28

Romaann
Juste Inscrit !
Date d'inscription: 7 May 2019
Messages: 4

QGIS: Requete SQL (caractere pour "rien") ?

Bonjour,

Je corrige actuellement une table attributaire et je me suis penché sur les adresses. Pour plus de lisibilité je corrige les "R", "PL" en "RUE", "PLACE".

La manœuvre est simple sauf pour les "R JEAN ZAY" par exemple car si je fais une requête du style  replace(  "adresse" , 'R ' , 'RUE ' ) je risque remplacer touts les noms qui se finissent par un "R".

Exemple pour cette requête: "R GAUCHER DE ROCHEFORT" deviendrait "RUE GAUCHERUE DE ROCHEFORT"

J'aurais voulu savoir s'il existait un caractère qui décrirait qu'il n'y a rien devant. Il me semble que le "$" signifie "peu importe le caractère d'après". En soit existe-t-il un caractère qui signifie "rien devant"?

Merci par avance, Cordialement

Hors ligne

 

#2 Wed 24 July 2019 09:39

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

Re: QGIS: Requete SQL (caractere pour "rien") ?

Salut,

vous pouvez utiliser une expression régulière avec la fonction sub du module re.
https://docs.python.org/3/library/re.html#re.sub

Code:

from re import sub

sub('^R ', 'RUE ', 'R GAUCHER DE ROCHEFOR')

Le méta-caractère ^ signifie debut de chaine

Notez que l'expression régulière se termine par un espace,
comme la chaine de remplacement.

Dernière modification par tumasgiu (Wed 24 July 2019 18:16)

Hors ligne

 

#3 Wed 24 July 2019 16:14

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Requete SQL (caractere pour "rien") ?

Une autre option est de filtrer après le "replace" avec "instr" en utilisant la position 1. Autrement dit : where INSTR("adresse", "R") =1

(en y repensant, ça n'empêcherait pas de remplacer les occurences suivantes. Il faudrait donc améliorer l'expression, mais ça peut servir de base)

Dernière modification par carteq (Wed 24 July 2019 17:21)

Hors ligne

 

Pied de page des forums

Powered by FluxBB