begin process at 2012 05 26 13:59:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Requêtes

 > 

Couper un champ en deux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Couper un champ en deux

mercredi 12 mars 2008 à 12:13:58 | Couper un champ en deux

MasterCent

Bonjour à tous :

// Ceci n'est pas un dépanage, mais une préparation à une formation en Access !!! //
// Je n'ai pas besoin d'aide, mais plutôt d'idées à proposer //

Petit cas pratique : Je dois corriger une table dans laquel un champ contient le NOM et le PRENOM, appelé _NP . 
Sachant que c'est une très mauvaise idée de n'avoir qu'un champ (atomisation de l'info),
je décide de créer deux champs, l'un pour les _NOM, l'autre pour les _PRENOM.

Quelles requêtes utiliser pour automatiser la transition ( ou en tout cas, pour une partie du travail ) ?
Attention : Il y a des noms et prénoms composés tel que : Bach Karl Philippe Emmanuel ou Poivre d'Arvor Patrick.

Bon brainstorming.

 
dimanche 30 mars 2008 à 11:23:51 | Re : Couper un champ en deux

deutsch

Réponse acceptée !
Slt

Mon vieux c'est pas une requete SQL qu'il te faut mais un script Vb ou autre pour pouvoir decompose N&Pre
l'astuce c'est que tu dois commencé
par la fin du champ jusqu'a trouvé un blanc ensuite inséré le résultat dans la table c'est la meuilleurs solution 

Bon courage
 
lundi 31 mars 2008 à 15:07:18 | Re : Couper un champ en deux

MasterCent

Réponse acceptée !
Slt,
Merci à tous ceux qui se sont interressés de près ou de loin à la question.

La réponse est d'abord "culturelle" / y a t-il une prédominance dans la structure nom - prénom,  
par exemple, en Espagne, il y aura en majorité deux noms de familles, etc

Sur base de cette étude, et dans le cas (facile) ou l'habitude serait un nom et un prénom, voici quelques instructions SQL "génériques" pour couper le champ :

--Nettoyage des espaces superflus
update MATABLE set NP = trim(NP) ;

-- Longueur du champ, position du premier blanc, position du suivant ou 0, sous le nom Q_SECTIONS
SELECT len( NP ) as  LONGUEUR  , inStr( 1 , NP , " " )  as PREMIERBLANC , inStr( PREMIERBLANC+1 , NP , " " ) AS SUIVANTBLANC , ID from MATABLE

-- Liaisons de Q_SECTIONS avec MATABLE, pour calculer les valeurs, sous le nom Q_NP
Select MATABLE.ID ,  NP , Left(NP,PREMIERBLANC-1) as N , Right(NP,LONGUEUR-PREMIERBLANC) from MATABLE join Q_SECTIONS on MATABLE.ID = Q_SECTIONS.ID where MATABLE.N is null and SUIVANTBLANC = 0

-- Mise à jour de MATABLE sur base de Q_NP
UPDATE MATABLE left join Q_NP on  MATABLE.ID = Q_NP.ID
SET MATABLE.NOM = N , MATABLE.PRENOM = P


A l'issu de cette opération, il devrait rester quelques enregistrements à traiter.
De nouveau, il faudra chercher si il existe une majorité dans les cas non traités, les particules ( de, van, ... ) afin de rétablir une traitement.
En final, il ne restera plus que quelques cas dont le nombre ne justifiera plus une automaisation, mais bien un traitement au cas par cas.

Pour info, cette solution s'inspire de la loi de Pareto, qui met en lumière que 80% des cas demanderont 20% de l'énergie...
(cfr
http://fr.wikipedia.org/wiki/Loi_de_Pareto  80% )

Ce n'est pas LA solution, mais bien un exemple de solution.
Le passage par un script est aussi une solution tentante, (merci deutsch), mais pas plus facile ! (j'ai aussi testé )

...

mardi 1 avril 2008 à 09:49:40 | Re : Couper un champ en deux

deutsch

Cher MasterCent

    la requete que tu viens de nous faire voir est du VB avec du SQL
ce qu'il nous demande c'est du SQL


Cette discussion est classée dans : champ, couper, prenom, cas


Répondre à ce message

Sujets en rapport avec ce message

remplir automatiquement un champ de formulaire access [ par D3m3T05 ] salut a tous, j'ai un petit probleme:je dispose d'un formulaire dans lequel je dois renseigner un nom choisi dans une liste deroulante.j'aimerait une Rechercher un champ d'une table "en tant que chaîne" dans le champ d'une autre table [ par Pecas ] Bonjour à tous/toutes, je suis nouveau dans le forum aussi bien que dans Access-SQL. Voici ma question :J'ai une table [Vieux prenoms] avec le champ P comparer deux champs [ par pascb423 ] Bonjour,est-il possible de comparer deux champ de base de donnée de telle manière que dans une requète mysql, on puisse prendre tous les enregistremen Procedure stockée [ par drcmomo ] Bonjour tout le monde,Je voulais savoir si on peut passer une liste de paramétre ou un DataTable dans une procédure stockée?Je m'explique, je dois par Classement selon le champ 'prix', mais en tenant compte du champ 'devise' [ par goldenboy68 ] Bonjour,Alors voilà, j'ai un classement de produits à faire selon le prix de ceux-ci. Le problème c'est qu'ils ne sont pas tous entrés dans la même de [curseur] insérer 3 premiers meilleurs salaires [ par sikove ] Salut, voila ça fait un moment que je cherche comment faire cette requete : " inserer dans une table temporaire les 3 meilleurs salaires d'une table d inserer une image dans un champ de type "image" dans une table sql server 2005 [ par koukou6311 ] bonsoir tous le mondej'ai besoin de votre aidej'ai crée une table avec un champ de type "image " mais je n'ai pas su comment inserer les images dans c modification d'un champ par requete est-ce possible??? [ par illanal ] existe-t-il une requête pour selectioné un champ avec critère et le modifier sans rentrer dans chaque champex: illana ----llkml      illana ---- lklfd champ automatique [ par hanaac8 ] Bonjour,j'ai urgemment besoin de votre aide. je recherche un code pour le creation d'un champ qui fait incrementation automatique en sql pourrais je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales