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

SQL Oracle Discussion :

Requête SQL avec colonne agrégée


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 41
    Par défaut Requête SQL avec colonne agrégée
    Bonjour,

    J'aimerai faire une requete qui, à partir de la table suivante:

    col1 col2 col3
    -------------------
    v11 v12 v13
    v21 v22 v23
    v21 v22 v33

    produit le result suivant:

    col1 col2 col3
    -------------------
    v11 v12 v13
    v21 v22 v23-V33


    une idee sur la facon de faire cela en sql (oracle)?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    La syntaxe dépendra de votre version.
    Faites une recherche sur STRING AGGREGATION.

  3. #3
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    Si tu es sous Oracle 9i et plus , voici la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with test as (
    select 'v11' val1, 'v12' val2, 'v13'val3 from dual union
    select 'v21', 'v22', 'v23' from dual union
    select 'v21', 'v22', 'v33' from dual
     
    )
     
     
     
    SELECT val1, val2 , REPLACE(REPLACE(REPLACE( XMLAGG(  XMLELEMENT("X", val3) ORDER BY val1, val2) ,'</X><X>', '-'), '</X>') , '<X>')   Val3 
      FROM test
    GROUP BY val1, val2
    Résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          VAL1    VAL2   Val3
           v11      v12     v13
           v21      v22     v23-v33

  4. #4
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 144
    Par défaut LISTAGG oracle 11 et 12
    Hello,

    Si vous utilisez Oracle 11 ou 12, il existe une nouvelle fonction nommée LISTAGG

    Démo sur SQLFiddle

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/10/2014, 12h34
  2. Requête SQL avec une réponse unique
    Par Glutinus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 16h35
  3. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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