D'abord il n'y a pas de champ dans une base de données. Lisez attentivement ceci : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L2
Ensuite il suffit de rechercher la position du motif à l'aide de la fonction PATINDEX, par exemple :
SELECT PATINDEX('%[0-9][0-9][0-9][0-9][0-9]%', '123 avenue du Maréchal de Lattre de tassigny 75012 PARIS')
et de l'extraire :
SELECT SUBSTRING('123 avenue du Maréchal de Lattre de tassigny 75012 PARIS', PATINDEX('%[0-9][0-9][0-9][0-9][0-9]%', '123 avenue du Maréchal de Lattre de tassigny 75012 PARIS'), 5)
Enfin, mélanger dans une même colonne de telles données (voie, CP, ville...) est bien entendu une grande stupidité, car cela viole la première forme normale et rend votre base de données totalement contre performante !!!!
A +
Partager