![](/img/trans.png)
[英]H2 User defined aggregate function, ListAgg, can't use DISTINCT or TRIM() on the first parameter
[英]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.