小白求救,sql语句问题,请大神帮忙

weixin_39472492 2018-08-31 09:59:18
以下第一句查询出来的结果正确,但是第二句出来的结果就不对了
Select 产品名称,SUM(数量) AS 产品数量 From 产品信息 where 颜色='红色' or 颜色='黑色' GROUP BY 产品名称
Select 产品名称,SUM(数量) AS 产品数量 From 产品信息 where 颜色<>'红色' and 颜色<>'黑色' GROUP BY 产品名称
...全文
331 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_39472492 2018-08-31
  • 打赏
  • 举报
回复
谢谢 mingqing6364,恍然大悟,以前也遇到过的,居然把这个忘了。再次感谢 @mingqing6364,@二月十六
mingqing6364 2018-08-31
  • 打赏
  • 举报
回复
应该是null引起的
SELECT
COUNT(*) 数量
FROM
( SELECT NULL 颜色 UNION ALL SELECT '红色' 颜色 UNION ALL SELECT '黑色' 颜色 ) t
WHERE
颜色 <> '红色' AND 颜色 <> '黑色';

结果为0

SELECT
COUNT(*) 数量
FROM
( SELECT NULL 颜色 UNION ALL SELECT '红色' 颜色 UNION ALL SELECT '黑色' 颜色 ) t
WHERE
ISNULL(颜色, '') <> '红色' AND ISNULL(颜色, '') <> '黑色';

结果为1
weixin_39472492 2018-08-31
  • 打赏
  • 举报
回复
产品总量是144000,红色和黑色共有8900,那么除去红色和黑色的有关有135000多(数据通过excel表格统计),现在用sql查询红色和黑色产品量是正确的(第一句),但是查询除去红色和黑色的产品数量就不对了,只有1390多,明显从数量级来看就不对了。请大神指出第二句错在哪里,非常感谢!!!
二月十六 版主 2018-08-31
  • 打赏
  • 举报
回复
具体怎么不对,建议楼主给出测试数据和对应的结果
二月十六 版主 2018-08-31
  • 打赏
  • 举报
回复
第二个语句写的不对,所以结果不对
qq_25073223 2018-08-31
  • 打赏
  • 举报
回复
貌似只能是空值导致的问题哦!
null导致异常

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧