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

多类型条件列求和返回NULL?AND运算符为何失效

为什么SQL中用AND同时匹配两个type值会返回NULL?

你写的第二个SQL里,type = 'cleaning' AND type = 'painting'这个条件根本不可能命中任何记录——单条费用记录的type字段只能存一个值,不可能同时等于两个不同的字符串。WHERE条件筛选不到数据,SUM函数在没有输入行的时候就会返回NULL,这就是你得到NULL的原因。

要统计id=1且type是cleaning或painting的费用总和,你需要把AND换成OR,或者用IN来简化条件:

方法1:使用OR

SELECT 
    SUM(expense) AS total 
FROM expenses
WHERE id = 1 
AND (type = 'cleaning' OR type = 'painting');

方法2:使用IN(更简洁)

SELECT 
    SUM(expense) AS total 
FROM expenses
WHERE id = 1 
AND type IN ('cleaning', 'painting');

这两种写法都会筛选出id=1、type为cleaning或painting的所有记录,然后对这些记录的expense字段求和,就能得到你预期的3000了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:07:02