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 :

Remplacer plusieurs colonnes par un 'alias'


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 90
    Points : 59
    Points
    59
    Par défaut Remplacer plusieurs colonnes par un 'alias'
    Bonjour,

    J'ai une table TOTO avec plusieurs champs dont certains contenant les mêmes types de données, et nommés data1, data2, data3...

    Je voudrais obtenir la liste des valeurs distinctes stockées indifféremment dans data1, data2, data3.
    Je réalise donc la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select distinct data1 from TOTO
    UNION
    select distinct data2 from TOTO
    UNION
    select distinct data3 from TOTO ;
    Existe-t-il un moyen d'obtenir le même résultat sans utiliser UNION, c'est-à-dire en utilisant un 'alias' qui correspondrait aux champs nommés data* ?

    Merci de votre aide.
    Expérience: nom dont les hommes baptisent leurs erreurs. Oscar Wilde

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT monchamp FROM
     
    (SELECT champ1 AS monchamp FROM MaTable
    UNION
    SELECT champ2 AS monchamp FROM MaTable
    UNION
    SELECT champ3 AS monchamp FROM MaTable
    )
     
    GROUP BY monchamp 
    ORDER BY monchamp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 90
    Points : 59
    Points
    59
    Par défaut
    Merci pour ta réponse, mais ça ne marche pas...
    Il met qu'il ne connait pas 'monchamp'
    Expérience: nom dont les hommes baptisent leurs erreurs. Oscar Wilde

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par zestrellita
    Merci pour ta réponse, mais ça ne marche pas... :(
    Il met qu'il ne connait pas 'monchamp'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT monchamp FROM 
     
    (SELECT champ1 AS monchamp FROM MaTable 
    UNION 
    SELECT champ2 FROM MaTable 
    UNION 
    SELECT champ3 FROM MaTable 
    )   Resultat 
     
    GROUP BY monchamp 
    ORDER BY monchamp
    Normalement, il suffit de donner un rennom à la table resultat et tout va marcher.
    Cela ne sert à rien de renommer les Champ2 et Champ3 car seuls les colonnes du premier select sont pris en compte.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 90
    Points : 59
    Points
    59
    Par défaut
    Autant pour moi, les 2 solutions marchent, j'avais fait une faute de frappe

    Merci beaucoup !!

    Par contre, ce n'est pas possible d'éviter la sous-requête avec les UNION ?
    Expérience: nom dont les hommes baptisent leurs erreurs. Oscar Wilde

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Pas possible sans sous-requêtes !

    Enfin c'est à ma connaissance.

    Qui dit mieux ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    mieux

    Non, effectivement c'est pas possible sans UNION

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 90
    Points : 59
    Points
    59
    Par défaut
    Merci à tous, ça va déjà m'aider

    @+
    Expérience: nom dont les hommes baptisent leurs erreurs. Oscar Wilde

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

Discussions similaires

  1. [AC-2003] Remplacer plusieurs textbox par un label et une seule textbox
    Par buzz73 dans le forum IHM
    Réponses: 2
    Dernier message: 21/12/2009, 12h35
  2. Remplacer plusieurs espace par un seul
    Par rjcab dans le forum VBA Access
    Réponses: 14
    Dernier message: 04/07/2008, 12h28
  3. Remplacer une colonne par ses numéros correspondants dans une liste
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 27
    Dernier message: 12/06/2008, 15h42
  4. remplacer plusieurs mots par un seul mot
    Par nivose110 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 07/02/2007, 09h40
  5. [VBA-E] Masquage de plusieurs colonnes par interface
    Par tuta77 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 24/01/2007, 09h10

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