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

SQL如何在WHERE子句中过滤返回符合指定规则的数据子集?

多条件SQL过滤实现方案

你原来的IF语句报错是因为标准SQL中IF函数需要传入3个参数(判断条件、条件成立返回值、条件不成立返回值),你只补了前两个参数导致逻辑不完整。你不需要用CTE或者UNION,直接用基础逻辑运算符组合就可以实现需求,写法更简洁:

SELECT * 
FROM 你的表名
WHERE Name LIKE 'Cat1%'
AND (
    Name != 'Cat1_subcat1' 
    OR Value > 5
);

逻辑说明:

  • 先用Name LIKE 'Cat1%'筛出所有归属于Cat1的行
  • 括号内的条件做二次过滤:如果当前行不是Cat1_subcat1,直接符合条件;如果是Cat1_subcat1,则需要满足Value大于5的要求,完全匹配你的过滤规则。

如果你偏好使用IF函数写法,补全参数即可正常运行:

SELECT * 
FROM 你的表名
WHERE Name LIKE 'Cat1%'
AND IF(Name = 'Cat1_subcat1', Value > 5, TRUE);

用你提供的样表数据做验证,最终返回结果如下:

NameValue
Cat1_subcat110
Cat1_subcat25

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:30:01