Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to remove duplicate values in XMLAGG query

V11081985Aug 7 2018 — edited Aug 7 2018

Hi All,

I have table TEMP like below format.

TEMP_ID

A_SPEED

L_INTER

12396SH

10kbps

CJ12

12396SH

10kbps

M7T35

14505TH

20Kbps

DL55

14505TH

20Kbps

SYC75

14505TH

40Kbps

DL55

CREATE TABLE TEMP(TEMP_ID VARCHAR2(100), A_SPEED VARCHAR2(100), L_INTER VARCHAR2(100))

My Query

========

SELECT DISTINCT TEMP_ID,

RTRIM(XMLAGG(XMLELEMENT(E,A_SPEED,',').EXTRACT('//text()') ORDER BY A_SPEED).GetClobVal(),',') AS "A_SPEED",

RTRIM(XMLAGG(XMLELEMENT(E,L_INTER,',').EXTRACT('//text()') ORDER BY L_INTER).GetClobVal(),',') AS "L_INTER"

FROM TEMP

GROUP BY TEMP_ID;

OUTPUT

=======

TEMP_ID

A_SPEED

L_INTER

12396SH

10kbps, 10kbps

CJ12, M7T35

14505TH

20Kbps, 20Kbps, 40Kbps

DL55, SYC75, DL55

Required Output

=============

TEMP_ID

A_SPEED

L_INTER

12396SH

10kbps

CJ12, M7T35

14505TH

20Kbps, 40Kbps

DL55, SYC75

I need to remove duplicate values from my result of XMLAGG. I have around 50 columns to apply XMLAGG like this. I cant use LISTAGG or WM_CONTACT as it has limitation of 4000 characters.

Please help me in that. I am using Oracle 11g. Let me know if you need anything more info.

Thanks

11081985

This post has been answered by odie_63 on Aug 7 2018
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 4 2018
Added on Aug 7 2018
7 comments
678 views