IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

SQL séparation 1 colonne en plusieurs colonnes


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 10
    Points
    10
    Par défaut SQL séparation 1 colonne en plusieurs colonnes
    Bonjour a tous
    J'ai une table composé d'une seule colonne. Cette colonne de type String contient 5 données séparé par des virgules. Est ce que je peux creer une table avec 5 colonnes a partir de cette table. Si oui comment !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    " String 1",1254,88,"String2","String 3"
    " String 1",1254,88,"String2","String 3"
    " String 1",1254,88,"String2","String 3"

    Merci
    Flo

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 390
    Points
    28 390
    Par défaut
    Utilise les fonctions POSITION pour déterminer la place des virgules et SUBSTRING pour découper les sous-chaînes

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci pour ton aide
    "position" me donne que la premiere itération il n'y as pas une autre fonction qui me donne les autres emplacements. Sinon comment faire?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 390
    Points
    28 390
    Par défaut
    Un début...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT  part1
        ,   part2
        ,   SUBSTRING(suite2 FROM 1 FOR POSITION(',' IN suite2) - 1) AS part3
        ,   SUBSTRING(suite2 FROM POSITION(',' IN suite2) + 1)  AS suite3
    FROM
        (   SELECT  part1
                ,   SUBSTRING(suite1 FROM 1 FOR POSITION(',' IN suite1) - 1) AS part2
                ,   SUBSTRING(suite1 FROM POSITION(',' IN suite1) + 1)  AS suite2
            FROM
                (   SELECT  SUBSTRING(macolonne FROM 1 FOR POSITION(',' IN macolonne) - 1) AS part1
                        ,   SUBSTRING(macolonne FROM POSITION(',' IN macolonne) + 1)    AS suite1
                    FROM    matable
                )   AS  tmp1
        )   AS  tmp2
    ;

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup al1_24

    voila le code complé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT part1
    	 ,   part2
    	 ,   part3
    	 ,   SUBSTRING(suite3 FROM 1 FOR POSITION(',' IN suite3) - 1) AS part4
       ,   SUBSTRING(suite3 FROM POSITION(',' IN suite3) + 1)  AS part5		
    FROM (		
            SELECT  part1
                ,   part2
                ,   SUBSTRING(suite2 FROM 1 FOR POSITION(',' IN suite2) - 1) AS part3
                ,   SUBSTRING(suite2 FROM POSITION(',' IN suite2) + 1)  AS suite3
            FROM
                (   SELECT  part1
                    ,   SUBSTRING(suite1 FROM 1 FOR POSITION(',' IN suite1) - 1) AS part2
                    ,   SUBSTRING(suite1 FROM POSITION(',' IN suite1) + 1)  AS suite2
                    FROM
                    (   SELECT  SUBSTRING(PCDWLD FROM 1 FOR POSITION(',' IN PCDWLD) - 1) AS part1
                            ,   SUBSTRING(PCDWLD FROM POSITION(',' IN PCDWLD) + 1)    AS suite1
                        FROM    ADELE.BALFIST
                    )   AS  tmp1
                )   AS  tmp2
        ) AS tmp3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 29/03/2013, 13h15
  2. Update plusieurs colonnes et plusieurs conditions
    Par Ben1276 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/09/2009, 11h03
  3. Réponses: 6
    Dernier message: 12/12/2008, 06h56
  4. Réponses: 5
    Dernier message: 07/11/2006, 11h16
  5. Réponses: 10
    Dernier message: 29/08/2006, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo