作为普通 qSQL 查询的示例,我们会这样写:
select from table where sym like "temp*"
选择 `sym 列中以“temp*”开头且后跟任意字符序列的任何元素。
我们如何以函数形式编写它?这纯粹是为了我正在完成的一项作业任务,它要求我使用函数形式重新编写函数。
?[trade; enlist(like;
newCol;($:;enlistABC)); 0b; ()]
这在 KX Academy Jupyter Notebook 中效果很好,但是,这没有考虑通配符。
我解析的 select 语句返回给我这个:
?
`table
,,(';(like;`sym);(*;`temp))
0b
()
但是,我不明白如何写这个,在网上找不到任何东西。请帮忙。
当我运行该语句时: 解析“从表中选择符号如“temp*”的位置
我得到: ?
table ,,(like;
sym;“温度*”)
0b
()
相当于: ?[
table;enlist(like;
sym;"温度*");0b;()]
您确定您已经正确解析了初始语句吗?
构建查询时,您可以使用反斜杠转义引号字符,以允许解析您的查询:
q)parse "select from table where sym like \"temp*\""
?
`table
,,(like;`sym;"temp*")
0b
()
将形成:
?[table;enlist (like;`sym;"temp*");0b;()]
kx 有一个很好的脚本,有助于形成功能选择: