You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KDB+中如何比较两个Symbol字段并筛选符合条件的行?

解决KDB+中筛选col1值包含在col2中的行的问题

问题原因

你原语句未返回结果的核心问题有两个:

  • like的用法错误:like要求右侧是带通配符的匹配模式,直接用string col2无法实现子串匹配
  • any的误用:any会将所有行的判断结果聚合为单个布尔值,无法完成逐行的独立判断

正确解法

方法1:用like构造通配符匹配模式

将col1转为字符串后,前后拼接*作为通配符模式,再与col2的字符串进行匹配:

select from tab where string col2 like "*", string col1, "*"

方法2:用instr函数高效判断子串

instr函数可直接返回子串在目标字符串中的起始位置,若返回值大于0则表示子串存在:

select from tab where 0 < instr[string col2; string col1]

执行结果

上述两种方法都会返回符合要求的行:

col1 col2
---------
abc  /ee/abc/uuu
efd  /ee/efd/uuu

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:10:03