Modifier plusieurs champs avec 1 requête.

Résolu
poilusduboux
Messages postés
83
Date d'inscription
jeudi 19 mai 2005
Statut
Membre
Dernière intervention
17 juin 2011
- 30 mars 2007 à 15:41
chaibat05
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
- 30 mars 2007 à 19:23
Bonjour



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je viens d’importer une table dans une base SQL serveur 2005 depuis un fichier Excel :


Jusque la, pas de problème.


Il y a environ 500 lignes dans ma table avec des N° de téléphone sous cette forme.


0-0367895426  


Mais moi pour une question de lisibilité j’aimerais pouvoir faire une requête pour modifier


Tout mes N° en une seule fois pour qu’ils aient la forme suivante : 0-036 789 54 26  



 




Si quelqu’un à une idée…



 




PS : je travail avec Visual Studio 2005 (VB.NET)

4 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
30 mars 2007 à 18:55
Salut
Ma première idée serait de demander à Excel d'appliquer un format de cellule adéquat pour ce champ, plutôt que de modifier la DB.

En faisant l'essai pour te proposer qqchose, je m'aperçois que le trait d'union est gènant (car il transforme le chiffre en chaine).
Si ton numéro était un simple numéro comme 367895426, il suffirait d'appliquer le format personnalisé suivant :
0"-"000" "000" "00" "00    (où les doubles quotes " servent à délimiter les espaces et le tiret, pas les chiffres)

Sinon, pour ta requète ET à condition que 'monChamp' soit bien de type texte :
Update maTable
   Set monChamp = SubString(monChamp, 1, 1) + '-' +
                  SubString(monChamp, 3, 3) + ' ' +
                  SubString(monChamp, 6, 3) + ' ' +
                  SubString(monChamp, 9, 2) + ' ' +
                  SubString(monChamp, 11, 2)
 Where monChamp Like '[0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
30 mars 2007 à 18:57
... à condition que 'monChamp' soit bien de type texte  ... ET qu'il accepte 15 caractères au lieu de 12 !
0
chaibat05
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
30 mars 2007 à 19:11
Bonsoir,

sous reserve ...pour le tiret : "[mailto:0@000 0@000]"
0
chaibat05
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
30 mars 2007 à 19:23
d' ailleur j' y pense :
porquoi pas Format$( Chp;"@@@@ @@@ @@ @@")   ?
0