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

SQL查询:如何筛选列B对应值下A在指定范围的数据

解决你的SQL筛选问题

直接用OR条件筛选

最简便的写法是把三个判断条件用OR连接,这样就能匹配满足任意一个条件的客户:

SELECT customer_name
FROM your_table
WHERE 
    (B = 1 AND A BETWEEN 0 AND 10)
    OR (B = 2 AND A BETWEEN 11 AND 20)
    OR (B = 3 AND A BETWEEN 21 AND 30);

这个语句会直接找出符合三个规则中任意一条的记录,完全符合你要筛选customer1、customer2、customer3的需求。

用UNION合并结果

如果你习惯用子查询的思路,也可以分别查询每个条件的结果再合并:

SELECT customer_name FROM your_table WHERE B = 1 AND A BETWEEN 0 AND 10
UNION
SELECT customer_name FROM your_table WHERE B = 2 AND A BETWEEN 11 AND 20
UNION
SELECT customer_name FROM your_table WHERE B = 3 AND A BETWEEN 21 AND 30;

UNION会自动去掉重复的客户名,要是能确定每个客户只会符合一个条件,用UNION ALL会更快。

之前关联子查询出错的原因

你之前的写法应该是用了AND关联三个子查询的条件,或者关联逻辑错误,导致数据库误以为需要同时满足三个规则,所以才会得到(实际不存在的)同时符合三个条件的客户。换成上面两种写法就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:55:58