sql - xmlagg 函数需要永远执行
问题描述
我有一个表,其中数据被拆分为多行。我想将数据连接到 1 行分组Item Number
。当我使用LISTAGG
函数时,它给了我错误可能是因为函数LISTAGG
不支持Oracle 11g Release 1
xmlagg
。当我通过有限数量的项目 2 或 5 项目时,它工作正常,但我尝试对表中的所有项目执行,〜 25000 个项目它没有给出任何输出,而是继续执行。有什么我做的不对吗?
这是我的查询:
SELECT
ITEM_NUMBER,
--LISTAGG("Product Line(s)", '; ') WITHIN GROUP (ORDER BY "Product Line(s)") "Product Line(s)"
rtrim(xmlagg(xmlelement(e, "Product Line(s)", '; ') order by "Product Line(s)").extract('//text()').getclobval(), '; ') "Product Line(s)"
FROM ITEM
GROUP BY ITEM_NUMBER
样本数据
ITEM_NUMBER "Product Line(s)"
4100-0004 R13
4100-0004 R06
4100-0015 R12
4100-0015 R36
期望的输出
ITEM_NUMBER "Product Line(s)"
4100-0004 R13; R06
4100-0015 R12; R36
当我只传递这 2 项甚至 5 项时,上面的查询完美地工作,但当我一次获取整个表的数据时不起作用。有什么建议可以优化查询吗?
解决方案
推荐阅读
- c# - 如何发布具有多个项目的解决方案?
- docker - 创建 Docker 映像但 docker run 抛出错误:无法找到或加载主类 org.gradle.wrapper.GradleWrapperMain
- c# - C# Windows Service 使用 Foreach 循环的 CPU 使用率高,如何最小化 CPU 使用率?
- html - 如何通过双击 HTML 表格行导航到另一个页面?
- javascript - 你如何使用从 HtDP 到 ReactJS 的知识?
- excel - 如何使用用户表单分别编辑具有不同行和列的单元格中的数据
- javascript - 在不切换的情况下将新 iframe 加载到 javascript 中折叠
- react-native - 在 Atom 中注释掉代码会给我一个错误
- scala - 如果 trait 的 val 在课堂上被覆盖,为什么还要评估它?
- excel - VBA 如何以编程方式使用条件格式并将其仅应用于数字