Page 1 sur 1

[Résolu] Dédoubler une colonne

MessagePublié: 27 Nov 2011 18:19
par fab
Bjr,

Je récupère une base dont certaines données ont été entrées dans une seule colonne.
Pour simplifier : Prénom et Nom sont dans un seul enregistrement.
Et je cherche à les "éclater" dans deux nouvelles colonnes

Les fonctions RIGHT ou LEFT ne m'aident pas trop dans ce cas.

Bien sûr, je pourrais traiter ça dans un tableur et réimporter ensuite mais y-a t-il une solution en SQL pur ?

Merci de votre aide

Re: Dédoubler une colonne

MessagePublié: 27 Nov 2011 19:18
par jeanmimi
Bonjour,
Autant concaténer est simple, dé-concaténer est inconnu au bataillon. Ce qui serait intéressant, c'est de repérer le l'espace vide entre le prénom et le nom, puis séparer ce qui et à gauche de ce qui est à droite de cet espace, mais je n'ai pas trouvé comment.
Ceci étant dit, quel peut être l'intérêt de dédoubler cette colonne ?

Re: Dédoubler une colonne

MessagePublié: 28 Nov 2011 10:23
par Dude
Salut,

jeanmimi a écrit:c'est de repérer le l'espace vide entre le prénom et le nom

La fonction LOCATE le permet.

Si on part du principe que la table a la structure suivante :
Code : Tout sélectionner   AgrandirRéduire
nom_complet | nom | prenom

L'exécution par Outils > SQL de cette requête permet d'éclater en deux parties le champ nom_complet :
Code : Tout sélectionner   AgrandirRéduire
UPDATE "clients" SET
"nom" = SUBSTRING( "nom_complet", LOCATE( ' ', "nom_complet" ) + 1 ),
"prenom" = LEFT( "nom_complet", LOCATE( ' ', "nom_complet" ))


Merci d'ajouter [Résolu] au début du titre de ton 1er message et de cocher la case de l'icône de sujet (le V vert).

Re: Dédoubler une colonne

MessagePublié: 28 Nov 2011 13:31
par fab
jeanmimi a écrit:Ceci étant dit, quel peut être l'intérêt de dédoubler cette colonne ?

Il y a une erreur de conception dans la table. Il y aurait du y avoir 2 champs.
Ce n'est pas moi qui suis à l'origine de la base. Je fais avec...

Dude a écrit:La fonction LOCATE le permet.

Super, ça va bien me servir.

Je passe en [Résolu]

A bientôt

Re: [Résolu] Dédoubler une colonne

MessagePublié: 28 Nov 2011 14:44
par jeanmimi
Excellent !
Je joins un petit exemple pour ceux qui voudraient mettre le SQL dans une requête en Mode ébauche.