我正在整理一个查询KDB会话并将各种数据返回到前端的进程.前端将参数传递给KDB会话,这是一个以字符串形式出现的表名 - 例如"table",其中table是KDB会话中的表
我可以在引用的基础表上运行一些简单的KDB函数,例如:
count `$"table"
cols `$"table"
Run Code Online (Sandbox Code Playgroud)
在其他情况下,前端将一个字符串传递给KDB会话,该会话指定一个函数和一个参数,当运行时,它返回一个等价于table上面的表- 例如,"function parameter"
我想在运行返回的表上运行相同的简单函数function parameter
以下不输出相当于返回count table和cols table分别为:
count `$"function parameter"
cols `$"function parameter"
Run Code Online (Sandbox Code Playgroud)
从字符串隐含的表中获取count和cols的最佳方法是什么 "function parameter"
非常感谢!
在您的示例中,cols能够将表或表的名称作为参数作为符号,这就是它按预期返回列名的原因.count不能将表的名称作为参数,因此只返回1,因为只有一个符号元素.
"function parameter"已被转换为符号,`function parameter并且没有具有此名称的表,因此将此作为参数传递cols将抛出错误,而传递此函数count将返回1,原因与之前相同.
您可能有兴趣将该value函数与字符串参数一起使用,并在此处提供文档:http://code.kx.com/q/ref/metadata/#value.
它将评估字符串参数,就好像它已被输入命令提示符一样.使用value "table"将返回table变量并将value "function parameter"使用参数运行函数,该参数也将是表.
然后可以使用count value "function parameter"或count value "table"将这些函数传递到您的简单函数中以返回所需的输出.
希望这很有用,
标记