Not able to use LISTAGG

喜你入骨 提交于 2019-12-04 07:11:09

问题


SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
FROM   emp
GROUP BY deptno;
Error:- 
ORA-00923: FROM keyword not found where expected
00923. 00000 -  "FROM keyword not found where expected"
*Cause:    
*Action:
Error at Line: 1 Column: 42

Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production


回答1:


In this article you have different approaches to dealing with string aggegation, including those to take into account if you are running an Oracle version prior to 11g Release 2 (which is your scenario).

Particularly, you can use Oracle's WM_CONCAT function:

SELECT deptno, wm_concat(ename) AS employees
FROM   emp
GROUP BY deptno;

You can also define your own function for string aggregation or use other functions such as SYS_CONNECT_BY_PATH or COLLECT. In the above article you have examples of these methods.



来源:https://stackoverflow.com/questions/53479591/not-able-to-use-listagg

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!