当我对Oracle使用以下sql命令时:
SELECT CATEGORY,ANTIGENNAME,LATINCOMPOSITION,HYCORCODE,FDACLEARANCE, LISTAGG(ORCHARDCODE, ';')
WITHIN GROUP (ORDER BY ORCHARDCODE) as code
from tablename
group by HYCORCODE我好像收到了一个ORA-00923错误:
ORA-00923: FROM关键字未在预期中找到
是什么导致错误出现呢?
发布于 2016-02-22 20:11:13
LISTAGG在您的甲骨文版本中不可用。请用以下语句检查您的版本:
select * from v$version;只有在11.2.x版本的>=上才有LISTAGG。
来自Oracle数据库11g第2版(11.2)数据仓库的新特性
解析函数 引入了新的SQL分析函数,使您能够在组(
LISTAGG)中列出(或连接)度量值。
发布于 2016-02-22 20:01:13
code不是一个保留词,所以我不认为它需要被引用(参见这里)。
但是,您有一个聚合函数,因此需要group by中正确的列。
SELECT CATEGORY, ANTIGENNAME, LATINCOMPOSITION, HYCORCODE, FDACLEARANCE,
LISTAGG(ORCHARDCODE, ';') WITHIN GROUP (ORDER BY ORCHARDCODE) as code
from tablename
group by CATEGORY, ANTIGENNAME, LATINCOMPOSITION, HYCORCODE, FDACLEARANCE;这肯定解决了查询中的一个问题。我不确定它是否能弥补你的错误。当我从group by中省略列时,我得到"ORA-00979 (而不是按表达式分组)“。
https://stackoverflow.com/questions/35562364
复制相似问题