我有一个非常简单的查询:
select date,route,employee
from information
where date=Trunc(Sysdate)
但是,由于某些路线分配了2个以上的雇员,因此查询将返回两行
但是我想让一条路线排成一行,所以理想的输出应该是:
所以两个名称在同一行中,并与“ |”组合,那么如何在PL / SQL中实现此目标?
答案 0 :(得分:2)
您可以使用listagg函数,但还必须将“日期和路由”添加到分组函数中
SELECT LISTAGG(emp, ' | ')
WITHIN GROUP (ORDER BY emp) "Emp",
MAX(date) "Date",
MAX(route) "Route"
FROM information
WHERE date=Trunc(Sysdate);
答案 1 :(得分:0)
我很确定之前here已经回答了这个问题。不同版本的Oracle具有不同的解决方案,并且答案很多。