正则表达式退出加入KDB

时间:2018-11-14 06:35:44

标签: kdb

在KDB中,是否可以使用“ like”或“〜”执行lj(左联接)来联接2个表,其中1个表的键通过regex匹配另一个表的键?

1 个答案:

答案 0 :(得分:3)

不使用开箱即用的工具,但是您可以执行类似的操作(效率不高)

q)t:([]sym:`ACF`ABC`ABD`BA`AAF`AABG`CDE;col1:til 7)

q)t2:([]regex:("*AB*";"AA?";"A*";"C*");col2:4#.Q.A)

q)t,'t2 first each where each t[`sym]like'\:t2[`regex]
sym  col1 regex  col2
---------------------
ACF  0    "A*"   C
ABC  1    "*AB*" A
ABD  2    "*AB*" A
BA   3    ""
AAF  4    "AA?"  B
AABG 5    "*AB*" A
CDE  6    "C*"   D

如果存在多个匹配项,则此方法将采用第一个匹配模式。

另一个想法是创建一个制造的密钥,并在该制造的密钥上保留左键。