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

Requêtes et SQL. Discussion :

[SQL] split d'un champs


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut [SQL] split d'un champs
    Bonjour,

    je ne sais pas comment expliquer avec des mots ce que je veux faire (et je ne sais pas l'écrire en SQL non plus ) donc je vous expliquer avec un exemple

    j'ai la table suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    champs1    champs2         champs3
    truc          2              A;B 
    toto          3              A
    jean          2              B;C
    je voudrais une requête qui me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    truc         2            A
    truc         3            B
    toto         3            A
    jean         2            B
    jean         2            C
    en gros je voudrais splitter le champs3 mais je ne sais pas trop si c'est faisable.

    Je vous remercie de m'aiguiller dans cette requête.

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    Si ton champ3 ne comporte la possibilité que "?;?", cela est faisable par UNION
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select champ1 as alias1, champ2 as alias2, left(champ3,1) as alias3 from tatable
    UNION
    select champ1, champ2, right(champ3,1) from tatable
    where len(champ3)>2
    Dans le cas contraire....?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    malheureusement non, le champs peut également être du type xxxx;3 et même du type x;x;x;x;x

    je te remercie de m'avoir répondu. Je vais creuser du côté de l'union car j'avoue que je n'y avais pas pensé.

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 929
    Points
    55 929
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je pense que c'est impossible sans créer une table transitoire en bouclant sur les enregistrements en VBA

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    J'aurais souhaité eviter cela, mais je m'y résoudrais en dernier recours

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 929
    Points
    55 929
    Billets dans le blog
    131
    Par défaut
    Pourquoi souhaiter éviter cela? C'est un code VBA d'une quinzaine de lignes...

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    une requête SQL serait certainement plus rapide à l'exécution.

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 929
    Points
    55 929
    Billets dans le blog
    131
    Par défaut
    Une requête "alambiquée" et interprétée par Access n'est pas forcément plus rapide qu'un petit code vba bien propre...

    Et, de toute façon, quand ce n'est pas possible, ce n'est pas possible!

    Si tu travaillais en SQL Server, tu pourrais créer une procédure stockée, mais elle créerait aussi une table temporaire, car je ne vois aucune possibilité de faire autrement, si ton champ peut contenir plusieurs valeurs de longueurs variables.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    Merci à tous.
    Je m'excuse pour mon entêtement.
    Je ne vois pas non plus de moyen de faire ça. Je me lance donc dans l'écriture du code.

    Merci encore.

Discussions similaires

  1. [Sql] Comment inserer un champs de type Date ?
    Par ridondo dans le forum DB2
    Réponses: 4
    Dernier message: 28/11/2005, 14h40
  2. [SQL] dictinct sur plusieurs champs
    Par lapartdombre dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/11/2005, 15h11
  3. [access][sql] commen inserer un champ du type oui/non
    Par cmoa59 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/04/2005, 11h05
  4. mot clef sql pour nom de champ
    Par bobinou007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 13h21
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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