繁体   English   中英

H2 用户使用“WITHIN GROUP”定义的 ListAgg 函数

[英]H2 User defined ListAgg function using 'WITHIN GROUP'

感谢 stackoverflow 上的一个问题,我为我的 H2 DB 定义了一个自定义 ListAgg 聚合函数,它似乎工作正常。

但是我使用 ListAgg 函数的 SQL 语句看起来像这样:

SELECT LISTAGG(SOMECOLUMN, ';')
         WITHIN GROUP (ORDER BY SOMECOLUMN)
FROM SOMETABLE
WHERE SOMECOLUMN = 'someValue';

并因“语法错误:预期为“BY”而失败。 可能是因为他不理解 'WITHIN GROUP (ORDER BY SOMECOLUMN)' 表达式并期望在 'GROUP' 之后有一个 'BY'?!

这也能教他吗?

我找到了一个将 h2 数据库版本更新到最新的解决方案。

感谢对此答案的评论: H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

从 1.4.198 版 (2019-02-22) 开始,H2 实现了 LISTAGG - 请参阅变更日志 它被描述为“部分”,但文档中的示例至少包括 LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) 和 LISTAGG(ID, ', ') WITHIN GROUP (ORDER BY ID) OVER (ORDER BY ID) – 安德鲁斯宾塞 2019 年 6 月 21 日 13:13

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM