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 :

[oracle 8][débutant] Sélection un peu particulière


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Luxembourg

    Informations forums :
    Inscription : Octobre 2002
    Messages : 20
    Par défaut [oracle 8][débutant] Sélection un peu particulière
    bonjour,

    j'ai une table

    truc
    ------------------------------------------
    X Y A
    X Y B
    W V A
    ...

    Et je veux une requête qui me sorte :

    Requete
    -------------------------------------------
    X Y A;B
    W V A


    pourriez vous m'aider?

  2. #2
    Membre expérimenté Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Par défaut
    C'est très vague ce que tu demandes là....

    Tu ne sélectionne que si les 2 premières colonnes identiques?
    A;B signifie 2 colonne contenant A et B ou une chaine de caractères 'A;B'?
    ....

    Peux tu être plus précis dans tes spécifs stp?

  3. #3
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Tu ne peux pas le faire avec du SQL pur.

    Tu peux faire une fonction PL/SQL comme :
    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
     
    CREATE OR REPLACE function f_concat_list(p_a in varchar2, p_b in varchar2) return varchar2 as
       ret   varchar2(180);
    begin
       ret := null;
       for r in (select c from TEST where a = p_a and b = p_b)
        loop
           if ret is null then
              ret := r.c;
           else
              ret := ret || ';' || r.c;
           end if;
        end loop;
     
       return ret;
    end;
    /
    Et ensuite faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select distinct a, b, f_concat_list(a, b) 
    from   TEST

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Luxembourg

    Informations forums :
    Inscription : Octobre 2002
    Messages : 20
    Par défaut
    ok merci !

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

Discussions similaires

  1. Une requete un peu particulière ...
    Par ZiMammouth dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/02/2007, 17h27
  2. Requête de sélection un peu complexe
    Par new_wave dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/01/2006, 14h44
  3. [Débutant] Sélection multiples dans une Listbox
    Par eraim dans le forum Access
    Réponses: 4
    Dernier message: 15/10/2005, 03h21
  4. [débutante] Sélection de date
    Par monia dans le forum Composants
    Réponses: 5
    Dernier message: 18/01/2005, 16h15
  5. Réponses: 14
    Dernier message: 01/12/2004, 15h20

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