You need to enable JavaScript to run this app. 如何在kdb中排除符合指定字符串模式的表记录
优惠活动
大模型
产品
解决方案
定价
更多

如何在kdb中排除符合指定字符串模式的表记录

kdb字符串匹配排除记录解决方案

问题原因

原写法逻辑是对每一条匹配规则单独执行排除查询,再将多次查询结果合并:第一次排除abc*模式得到2条记录,第二次排除eeee*模式得到3条记录,合并后自然会出现重复记录,且会包含匹配了其他规则的行。

正确写法

方法1:单次查询直接判断(性能最优)

直接在where条件中判断当前行是否不匹配所有规则,无需循环查询再合并:

select from tab where not any cola like/:a

执行后即可得到预期结果:

cola      colb
--------------
"bcdefgh" b
"tttttt"  c

方法2:基于已有匹配结果取差集

如果你已经提前得到了符合规则的记录,也可以直接用except取原表和匹配记录的差集:

// 先拿到符合匹配规则的记录
match_tab:raze {select from tab where cola like x } each a
// 取差集得到未匹配的记录
tab except match_tab

内容的提问来源于stack exchange,提问作者Terry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 21:51:02