SQL关于:警告: 聚合或其他 SET 操作消除了空值。

方法一:

create table tb 

id int, 
num int 
)

insert into tb select 1,10 
insert into tb select 1,20 
insert into tb select 2,80 
insert into tb select 2,null

select id,sum(num) 
from tb 
group by id

id                      
----------- ----------- 
1          30 
2          80

(所影响的行数为 2 行)

警告: 聚合或其它 SET 操作消除了空值。

分析:聚合函数无法对null值进行运算,所以会忽略 
这个提示仅仅是警告,就是告诉用户,null值被忽略了 
结果就是按照null为0来计算

如果用 
select id,sum(isnull(num,0)) 
from tb 
group by id

这样的语句,在运算之前,isnull已经把null值转换成0了, 
所以聚合函数运算就没有问题

方法二:

增加SQL语句

SET ANSI_WARNINGS OFF

原文地址:https://www.cnblogs.com/linjincheng/p/10945136.html

时间: 2024-11-12 11:09:53

SQL关于:警告: 聚合或其他 SET 操作消除了空值。的相关文章

(译文)SQL与Mongodb聚合之前的对应关系

本文翻译自:https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/ 由于本人也在学习Mongodb,项目中用到聚合,看到文档这篇不错就翻译一下(仅供参考) SQL中的聚合函数和Mongodb中的管道相互对应的关系: WHERE $match GROUP BY $group HAVING $match SELECT $project ORDER BY $sort LIMIT $limit SUM() $sum CO

SQL Server中的三种物理连接操作:嵌套循环连接、合并连接、哈希匹配

浅谈SQL Server中的三种物理连接操作 Merge join.Hash join.Nested loop join对比分析 版权声明:本文为博主原创文章,未经博主允许不得转载.

SQL点滴18—SqlServer中的merge操作,相当地风骚

原文:SQL点滴18-SqlServer中的merge操作,相当地风骚 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的.本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语

SQl Server误编辑删除数据,操作撤回

SQl Server误编辑删除数据,操作撤回 操作撤回 select?*?into?..?遇到大表咋办? 建议用? begin?tran ??update?...??--更新 ??select?...??--确认 ? ? commit?tran?--提交 或 rollback?tran?--回滚

SQL Server如何用触发器捕获DML操作的会话信息

原文:SQL Server如何用触发器捕获DML操作的会话信息 需求背景 上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因:文档缺少:以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作.现在他们想找出有哪些服务器,哪些应用程序会对这个表进行INSERT.UPDATE操作.那么问题来了,怎么去解决这个问题呢? 解决方案 由于数据库版本是标准版,我们选择了使用触发器来捕获进行DML操作的会话的相关信息,例如,H

转:iOS警告收录及科学快速的消除方法

  前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么? 本文分为三个部分:1.简单粗暴的消除警告. 2.详细科学的消除警告.(包括警告收录)  3.添加警告. 如果你不是在董铂然博客园看到本文,请点击查看原文. 一.简单粗暴的消除警告 警告如果是自己项目中的还好直接改了,如果是

iOS 警告收录及科学快速的消除方法

http://www.cocoachina.com/ios/20150914/13287.html 作者:董铂然 授权本站转载. 前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么? 本文分为三个部分:1.简单粗暴的消除警告. 2.详细科学的消除警告.(包括警告收录)  3.添加

iOS警告收录及科学快速的消除方法

  前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么? 本文分为三个部分:1.简单粗暴的消除警告. 2.详细科学的消除警告.(包括警告收录)  3.添加警告. 如果你不是在董铂然博客园看到本文,请点击查看原文. 一.简单粗暴的消除警告 警告如果是自己项目中的还好直接改了,如果是

【手记】sql报“聚合或其他set操作消除了null值”处理

这个警告在常规场景中没什么影响,但如果是用excel跑SQL,它会因为该警告阻止你的后续操作~事实上excel执行sql限制多多,需要更多的奇技淫巧,之前我就写过一篇.言归正传,要解决这个警告,一种当然是在语句中用到聚合函数的地方统统加上isnull,但如果语句很长,地方很多就蛋疼了,于是我推荐另一个更优雅的做法: 只需语句顶部加一句: SET ANSI_WARNINGS OFF; 搞掂. -EOF- 原文地址:https://www.cnblogs.com/ahdung/p/9568762.h