无法使用LISTAGG [英] Not able to use LISTAGG

查看:117
本文介绍了无法使用LISTAGG的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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数据库11g企业版11.1.0.7.0版-64位生产

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

推荐答案

本文,您有不同的方法来处理字符串聚集,包括在您运行11g第2版之前的Oracle版本(您的情况)时要考虑的那些方法.

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).

特别是,您可以使用Oracle的WM_CONCAT函数:

Particularly, you can use Oracle's WM_CONCAT function:

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

您还可以定义自己的函数以进行字符串聚合,或使用其他函数,例如SYS_CONNECT_BY_PATHCOLLECT.在上面的文章中,您有这些方法的示例.

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.

这篇关于无法使用LISTAGG的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆