#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: 1159
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