3

我正在寻找 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 进行现场工作、生产等,所以我想尽可能少地更改 DDL 来实现这一点。

查看 ARRAY_AGG,它似乎没有做任何类似的事情(只要能够像我们在上面使用 OWNERSHIP 所做的那样从单独的表中提取数据)。关于我如何实现这一点的任何建议?

4

1 回答 1

3

group_concat可能是您正在寻找的:

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

从手册中引用:

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

于 2013-04-08T21:45:39.370 回答