在此link中,有一个关于如何包含动态参数的示例。 d
,在KDB选择查询:带动态查询符号列表的KDB字符串连接
h: hopen`:myhost01:8012 // open connection
d: 2016.02.15 // define date var
symList: `GBPUSD`EURUSD
h raze "select from MarketDepth where date=", string d, ", sym in `GBPUSD`EURUSD" // run query with parameter d
这里d
是date
类型的,并且是易于串串连,以便产生一动态查询。
如果我想通过转换为字符串添加symList
作为一个动态参数,以及:
raze "select from MarketDepth where date=", string d, ", sym in ", string symList
连接后的字符串变成:select from MarketDepth where date=2016.02.15, sym in GBPUSDEURUSD
,换句话说字符串连接失去反引号,因此查询不会运行。我该如何解决这个问题?
p.S:我知道functional querying但是在2小时失败后,我放弃了这一点。
谢谢,我花了几个小时的功能选择,因为这似乎是正确的方式来做到这一点。但是,当我尝试运行查询时,解析树会引发错误。我设法运行它更简单的表,但当其中一个条件列是类型符号,它以某种方式不起作用.. – Rhubarb
@Zhubarb:做功能选择我显示不工作? –
我还没有测试过,但是这个我没有去上班。表:'t:([] col1:8?'a'b; col2:直到8; col3:8?9。)'。当我解析这个时:'select from t where col1 ='a,col2 <4',我得到了'?'''; enlist((=;'col1; enlist'a);(<;'col2; 4) ); 0b;()]',它没有给出预期的结果(即给出一行,其中col1是b)。 (对不起,反引号格式化) – Rhubarb