集合结果
我有一个表看起来像这样:集合结果
Table: table_name
name priority day hour
-------------------------------------
name1 1 monday 21:00
name2 3 tuesday 21:00
name3 1 monday 21:00
name4 2 monday 21:00
name5 2 sunday 22:00
name6 1 sunday 23:00
name7 1 thursday 00:00
name8 2 sunday 22:00
是谁家的任何想法,我该怎么办的请求,然后操纵结果汇总结果如下(不列标题当然):
priority day hour name
-----------------------------------------------
1 monday 21:00 name1,name3
3 tuesday 21:00 name2
2 monday 21:00 name4
2 sunday 22:00 name5,name8
1 sunday 23:00 name6
1 thursday 00:00 name7
我想组优先和天和小时。
优先可以是1至5
日显然可以周一到周日
小时显然可以任何时间:)
名称可以是任何东西。
最后,我需要一个SQL查询将格式化结果写入文件。
对于ORA-01489,您可以使用XMLAGG作为解决办法按本answer
一种解决方法带提取物
SET LONG 2000000
SET pagesize 50000
SELECT rtrim(xmlagg(XMLELEMENT(e,text,',').EXTRACT('//text()')
).GetClobVal(),',') very_long_text
FROM
(SELECT to_char(to_date(level,'j'), 'jsp') text FROM dual CONNECT BY LEVEL < 250
)
您仅混合使用小写字母和混合大小写变量名称很奇怪。你应该决定一种类型并保持一致。在Perl中的惯例是使用像'$ query_db'这样的蛇情况。 – simbabque
我只是想知道为什么我会为答案返回预期结果,而不会从另一个链接返回正确答案的复制粘贴解决方案会被接受... –
STRAGG
可以是有用
SELECT priority, day, hour, stragg(name)
FROM table_name
GROUP BY priority, day, hour
,如果它是不充分的利用LISTAGG
SELECT priority, day, hour, LISTAGG(name, ',') WITHIN GROUP (ORDER BY name)
FROM table_name
GROUP BY priority, day, hour
Stragg不是标准的oracle函数。看到这个问题:https://*.com/questions/37340183/stragg-in-oracle-database-11g-enterprise-edition-release-11-2-0-4-0-64bit-prod – Rene
LISTAGG似乎工作! 但是我得到的错误:( ORA-01489:字符串连接的结果是太长 我想这是因为我有甲骨文11.2 有什么办法避免这种错误 THX –
@amanssan看到张贴的链接? rene –
你到目前为止尝试过什么?为什么它不工作?请[编辑]问题来描述你遇到的问题这不是一个代码写作服务! – amon