kdb - 如何在选择中紧凑地使用多个或
问题描述
说我有一张桌子
tbl:([]a:`XXY`XXZ`XZZ`XYZ)
q)tbl
a
---
XXY
XXZ
XZZ
XYZ
我想选择像“ XX ”或“ ZZ ”这样的行
有没有比写作更紧凑的方式
select from tbl where (a like "*XX*")|(a like "*ZZ*")
理想情况下,我想将所有我的或选项存储在一个变量中,然后将其传递给选择。
我尝试过使用功能选择,但只能使其适用于单个或并且仅适用于以下形式。
q)c:(like;`a;enlist "*XX*")
::
q)?[tbl;enlist c;0b;()]
a
---
XXY
XXZ
我可以创建一个表或列表,然后将其传递给 c,而不是在 c 中设置 enlist“ XX ”吗?
谢谢
解决方案
最常见的方法是
q)select from tbl where any a like/:("*XX*";"*ZZ*")
a
---
XXY
XXZ
XZZ
推荐阅读
- node.js - 在 CLI 应用程序中实现 Github 身份验证和授权
- prolog - SWI Prolog 中的约束处理规则:“约束存储”是否仅在顶级目标处理期间存在?
- oracle - PL/SQL 语句被忽略,SQL 语句被忽略
- django - Django 创建超级用户和管理模块
- python - 如何计算一个大数的 2 的幂模另一个大数?
- jquery - 有没有办法完全覆盖div中的复杂区域?
- nginx - asp net core 3 在发布后获取带有正文内容的 POST 操作的 BadRequest 响应
- c# - 在以下代码中遇到合并冲突
- javascript - 动态改变一个js文件的src
- indexing - 公式 - 单元格值匹配结果为 Concat 公式