我正在尝试从column_1和column_2获取apptype CASPER和FOO的信息。 当我搜索一个或另一个apptype时,脚本工作正常。 但是,当使用'或'语句在一个输出中包含两个apptypes时,我收到一个错误。 我认为这只是'kdb或'声明。
我没有KDB参考手册。
raze{[tradedate]
setdate tradedate;
`rootordid`clordid xasc
select from(
(select column_1, apptype, column_3, from orders where apptype like "CASPER" or "FOO")
)}each .utl.get_bdts[2017.12.04;2017.12.05]
答案 0 :(得分:4)
重写or
语句如下:
select column_1, apptype, column_3, from orders where (apptype like "CASPER") or apptype like "FOO"
括号周围(类似" CASPER")确保不会因为q从右到左读取子句而抛出长度错误。
答案 1 :(得分:0)
您可以使用any
和each right /:
来包含多个字词而不是MyEnum<False>
:
or
这样做的好处是可以很容易地扩展超过2个术语。
在上面的示例中,首先评估select column_1, apptype, column_3 from orders where any apptype like/:("CASPER";"FOO")
,导致"CASPER" or "FOO"
错误。
示例:
'length