表&數據
CREATE TABLE peoplebuy (people Varchar2(10),buy Varchar2(10),price NUMBER); INSERT INTO peoplebuy VALUES ('我','小貓',10); INSERT INTO peoplebuy VALUES ('我','小狗',200); INSERT INTO peoplebuy VALUES ('你','樹',20);
原來的結果
SELECT * FROM PEOPLEBUY ORDER BY PEOPLE;

想要的結果
SELECT PEOPLE, LISTAGG(BUY, ',') WITHIN GROUP(ORDER BY BUY DESC) AS BUY, SUM(PRICE) TOTAL FROM PEOPLEBUY GROUP BY PEOPLE ORDER BY PEOPLE

用法

LISTAGG(measure_expr [, 'delimiter']) WITHIN GROUP (order_by_clause) [OVER query_partition_clause]
當連接的字符串過長時會出現以下錯誤:

解決方案:
XMLAGG https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions215.htm
XMLType https://docs.oracle.com/cd/B10501_01/appdev.920/a96616/arxml24.htm
RTRIM(XMLAGG(XMLELEMENT(e, t.signature_id, ',').extract('//text()')).getClobVal(),',') very_long_text
聚合元素,提取文本,獲取clob,去空格
