这是一个表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
。