如何使用元编程访问数组向量中的元素



这是一个表t。列arr1的数据形式是数组向量。

arr1=array(DOUBLE[], 0, 10).append!([2 3 4, 4 5 7, 7 9 10])
t = table(1..3 as id, arr1, rand(100, 3) as value)

我可以使用SQL语句查询列arr1中的第一个元素,即arr1[0]。

select arr1[0] from t

输出:

arr1_at
2
4
7

现在我想使用元编程进行查询。

sql(select = sqlCol('arr1[0]') ,from =t).eval()

但出现了以下错误:

Server response: 'Unrecognized column name arr1[0]

尝试以下两行:

sql(select=sqlColAlias(<arr1[0]>,"arr1_0"), from=t).eval()

sql(select=sqlColAlias(makeCall(at, sqlCol("arr1"), 0), "arr1_0"), from=t).eval()

输出:

arr1_0
2
4
7

第一行使用元代码<arr1[0]>。

第二行使用函数makeCall来调用at函数,以获得列arr1中第0位置的值,从而获得新的列arr1_0

最新更新