|
SELECT a,
b,
c,
d,
e,
f,
g,
h,
rtrim(xmlagg(XMLELEMENT(e, ''[''||TO_CHAR(T.LABEL) || ''xxxx]:'' || round(T.AMOUNT,2),'';'').EXTRACT(''//text()'')).GetClobVal(),'';'') LABLE
--LISTAGG(''[''||TO_CHAR(T.LABEL) || ''xxxx]:'' || round(T.AMOUNT,2), '';'') WITHIN GROUP(ORDER BY 1)
-- OVER(PARTITION BY a, b, c, d, e, f, g, h) LABLE
FROM T_PARENT_DATA_ALL T where T.AMOUNT <> 0
GROUP BY a, b, c, d, e, f, g, h
ORDER BY 1
原来的整个存储过程总共四个sql语句跑15s左右,现在就在其中一个动态sql改成上面这样listagg改成xmlagg就需要3分钟多,改的原因就是拼接超出长度
|
|