kdb: 过滤器 table 匹配符号列:~ vs =

kdb: filter table match symbol column: ~ vs =

对于where 子句过滤符号列,= 工作正常,但为什么匹配运算符~ 不工作?

q)t:([sym:`aa`bb]qty:20 30)

q)t
sym| qty
---| ---
aa | 20
bb | 30

q)select from t where sym=`aa
sym| qty
---| ---
aa | 20

q)select from t where sym~`aa
sym| qty
---| ---

Match 是将 `aa 与整个符号列进行比较,而 equals 是与每个元素进行比较

q)`a=`a`b`c
100b
q)`a~`a`b`c
0b

你可以

q)select from t where sym~\:`aa
sym| qty
---| ---
aa | 20