hsqldb是否提供类似于listagg的功能?

时间:2013-04-08 21:24:31

标签: oracle hsqldb

我在HSQLDB中寻找一个与Oracle的LISTAGG类似的函数(或一组函数)。

我将此作为较大选择的一部分,并希望在HSQLDB中保持尽可能相似的语法:

SELECT LISTAGG(owner_nm, ', ') WITHIN GROUP (ORDER BY owner_nm) 
       FROM OWNERSHIP WHERE FK_BIZ_ID = BIZ.BIZ_DATA_ID) AS CURRENT_OWNER

关键在于我们正在尝试使用HSQLDB进行远程工作,使用Oracle进行网站,prod等工作,因此我希望尽可能少地更改DDL来实现这一点。

看看ARRAY_AGG,它似乎没有做任何类似的事情(就像我们上面用OWNERSHIP做的那样从单独的表中拉出来)。关于如何实现这一目标的任何建议?

1 个答案:

答案 0 :(得分:3)

group_concat可能就是你要找的东西:

http://www.hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_aggregate_funcs

手册中的引用:

  

GROUP_CONCAT是从ARRAY_AGG派生的专用函数。此函数以与ARRAY_AGG相同的方式计算数组,删除所有NULL元素,然后返回一个字符串,该字符串是数组元素的串联