我有一個可以在PostgreSQL中正常工作的查詢,我需要在H2Database上使用它。H2數據庫:從子查詢中獲取行作爲數組
重要的表格基本上只有一個id integer
字段。
在PostgreSQL上的示例查詢,其結果是在這裏:
select id,
array_to_string(
array(select id from table1)
,',')
from table2
order by id
結果:
id | array_to_string
2 | 1,3,4,5,2
3 | 1,3,4,5,2
4 | 1,3,4,5,2
6 | 1,3,4,5,2
7 | 1,3,4,5,2
8 | 1,3,4,5,2
9 | 1,3,4,5,2
10 | 1,3,4,5,2
對於H2,我實現了用戶定義函數array_to_string
和array
如下:
public class H2Functions {
public static String arrayToString(final Object[] array, final String separator) {
return StringUtils.join(array, separator);
}
public static Object array(final Object row) {
return "???";
}
}
問題是我無法實現因爲我不知道它通過了什麼。
查詢失敗:
Scalar subquery contains more than one row;
我怎樣才能說服H2返回一些東西,array
可以工作?
無關,而是:檢索*** ***所有來自'table1'的'id2'的_each_行的id對我來說似乎很奇怪。你確定你不需要共同相關的子查詢嗎?或者甚至是在這些表之間進行正確的連接和「分組」操作? –
該查詢只是一個示例查詢,在我的應用程序中有子句。 – yglodt