Bonjour,
Voila ce que je voudrai faire.
Je voudrai concaténer toutes les valeurs d'une colonne entre elles. Voire les séparer avec un - ou un ;
Genre la colone A a des valeurs L1, L2,...
avoir: L1;L2;L3....
Merci
Bonjour,
Voila ce que je voudrai faire.
Je voudrai concaténer toutes les valeurs d'une colonne entre elles. Voire les séparer avec un - ou un ;
Genre la colone A a des valeurs L1, L2,...
avoir: L1;L2;L3....
Merci
un résumé des techniques d'aggrégations sur
http://www.oracle-base.com/articles/...Techniques.php
en particulier
--> User-Defined Aggregate Function
Je ne veux pas concaténer les lignes de plusieurs colonnes mais juste les valeurs d'une seule colone entre elles:
Je voudrai avoir:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ID TOTO ---------- 1 A 1 B 2 A 3 D
Et sans PL/SQL, juste avec une requête classique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ID TOTO -------- 1 A;B 2 A 3 D
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 SQL> create table t as select 1 id, 'A' toto from dual union select 1,'B' from dual 2 union select 2,'A' from dual union select 3,'D' from dual; Table created. SQL> select id, rtrim(max(decode(r,1,toto))||';'||max(decode(r,2,toto))||';'|| 2 max(decode(r,3,toto))||';'||max(decode(r,4,toto)),';') 3 from (select id,toto, row_number() over (partition by id order by toto) r from t) 4 group by id 5 order by id; ID RTRIM(M ---------- ------- 1 A;B 2 A 3 D
Merci pour la réponse, mais elle ne répond pas exactement à ce que je veux faire...
En effet, dans l'exemple de Laurent, le nombre de lignes est limité à 4. Or, le nombre de lignes de ma table n'est pas fixe ; il me faudrait donc une solution qui fonctionne quel que soit le nombre de lignes de ma table (dans mon exemple, il n'y avait que 4 lignes, mais ce n'était qu'un exemple...).
Merci d'avance !
de toute façon, tu ne pourras pas concaténer des centaines de colonnes. Essaye de jeter un oeil au lien ci-dessus
MERCI !!
C'est bon, j'ai trouvé la solution dont j'avais besoin ; j'ai utilisé le '
SYS_CONNECT_BY_PATH'.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager