2017-06-20 64 views
1

如果我只在过滤器中放置一个符号,我该如何选择特定的记录?如何在kdb的一个字段中查询多个符号?

Eg: 
tab:([]a:1 2 3;b:(`abc`bde;`efg`rte;`dqw`gds)) 
1 (`abc`bde) 
2 (`efg`rte) 
3 (`dqw`gds) 

我想在abc所以只能回油过滤器:

1 (`abc`bde) 

select from tab where b=`abc将无法​​正常工作。

+0

的可能的复制[?如何查询KDB表,其中一列是一个列表(https://stackoverflow.com/questions/40090753/how-to-query -kdb-表,其中一列-是-A-列表) –

回答

4

您可以使用每个右副词/:in功能:

q)select from tab where `abc in/: b 
a b  
--------- 
1 abc bde 

每个右是必要的,因为在这里表列向量;所以in正在嵌套的符号列表上运行。下面的exec调用显示了这个更清楚:

q)0N!(exec b from tab); 
(`abc`bde;`efg`rte;`dqw`gds) 
相关问题