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 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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
Rejoignez-nous