在运行时在DolphinDB SQL查询中指定列名

时间:2019-04-30 07:57:41

标签: dolphindb

在DolphinDB中,我想编写一个函数,该函数将表t和字符串colName作为参数,并根据tcolName运行SQL查询。 。我的代码是这样的:

def doQuery(t, colName) {
    return select colName from t
}

但是此函数将返回一个仅包含一个元素colName的表,无论我提供的参数是什么。

例如,当我跑步时

t = table(1..5 as col0)
doQuery(t, `col0)

我所期望的是列col0包含元素12345,而我得到了是

colName
-------
col0

我想知道我的代码有什么问题。

1 个答案:

答案 0 :(得分:1)

在sql语句中,必须显式地写下select子句中的列名。这是几乎所有数据库(包括DolphinDB)的规则。在您的情况下,列名由函数参数动态传递。也就是说,在编写代码(SQL查询)时无法指定列。但是,DolphinDB提供元编程技术来为您解决确切的问题。

def doQuery(t, colName) {
    return sql(sqlCol(colName), t).eval()
}

http://www.dolphindb.com/help/index.html?Metaprogramming.html