【问题标题】:Combine two Java Objects in TEIID在 TEIID 中合并两个 Java 对象
【发布时间】:2021-04-10 22:02:38
【问题描述】:

我有一个 UDF,它返回两个具有双值的 java 对象:

object1 = {1.0,1.5,2.0,2.5}
object2 = {5.0,6.0,7.0,8.0}

我想以以下方式组合/合并它们,返回一个双数组:

resultArray = [1.0,5.0,1.5,6.0,2.0,7.0,2.5,8.0]

我已经查看了 arrayiterate 以返回表格式,然后 array_agg 将两者结合起来,但我没有成功使用这种方法。

如果我能获得一些帮助和指导以最快的方式获得所需的 resultArray,不胜感激

谢谢。

【问题讨论】:

    标签: java sql wildfly teiid


    【解决方案1】:

    尝试使用 ARRAYTABLE,然后加入这两个表。

    【讨论】:

    • 我尝试了 ARRAYTABLE,它只获得数组中的第一个值,而不是表格格式的整个数组:SELECT x.* FROM dataTable, ARRAYTABLE(getObject(dataTable.data,1)) COLUMNS doubleArray double) AS x UDF 以这种方式检索对象数组:object1: getObject(dataTable.data,1) object2: getObject(dataTable.data,2)
    • 以下内容仅适用于每个数组中的第一个值,如何组合多个值:SELECT array_agg(x.object1||','||y.object2) FROM dataTable , ARRAYTABLE(getObject(dataTable.data,1)) COLUMNS object1 double ) AS x, ARRAYTABLE(getObject(dataTable.data,2)) COLUMNS object2 double ) AS y
    • 您可以执行类似 `ARRAYTABLE(dataTable.object1, COLUMNS col1 double, row_number() over(order by col1) id) x` 的操作并创建两个虚拟表,然后通过它们的 id 加入查询
    猜你喜欢
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2017-06-11
    • 2013-01-28
    • 2014-11-29
    • 1970-01-01
    • 2021-01-24
    相关资源
    最近更新 更多