3

Oracle の LISTAGG に似た機能を実行する HSQLDB の関数 (または関数のグループ) を探しています。

私はこれをより大きな選択の一部として持っており、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 に答える