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

这个警告在常规场景中没什么影响,但如果是用excel跑SQL,它会因为该警告阻止你的后续操作~事实上excel执行sql限制多多,需要更多的奇技淫巧,之前我就写过一篇。言归正传,要解决这个警告,一种当然是在语句中用到聚合函数的地方统统加上isnull,但如果语句很长,地方很多就蛋疼了,于是我推荐另一个更优雅的做法:

只需语句顶部加一句:

SET ANSI_WARNINGS OFF;

搞掂。

-EOF-

原文地址:https://www.cnblogs.com/ahdung/p/9568762.html

时间: 2024-11-13 20:41:05

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

SQL Server聚合函数

聚合函数对一组值计算后返回单个值.除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null).所有的聚合函数均为确定性函数.即任何时候使用一组相同的输入值调用聚合函数执行后的返回值都是相同的,无二义性.T-SQL提供的聚合函数一共有13个之多. 聚合函数通常会在下列场合使用: 1.select语句的选择列表,包括子查询和外部查询. 2.使用compute或compute by产生汇总列时. 3.having子句对分组的数据记录进行条件筛选. 聚合函数 1.平均值AVG A

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          3

SQL Server 聚合函数算法优化技巧

Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值执行计算并返回单一的值.聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. v1.写在前面 如果有对Sql server聚合函数不熟或者忘记了的可以看我之前的一片博客.sql server 基

利用sql报错帮助进行sql注入

我们可以利用sql报错帮助进行sql注入,这里以sql server 为例: sql查询时,若用group by子句时,该子句中的字段必须跟select 条件中的字段(非聚合函数)完全匹配,如果是select * ,那就必须将该表中所有列名都包含在group by 中:若少了哪个,就会报错,报错中会提示如下; 选择列表中的列 '列名'无效,因为该列没有包含在聚合函数或 GROUP BY 子句中. 这个提示的列名是按该表中的顺序来的,这时我们可以利用这点进行sql注入中枚举所有列的工作: 先使用

SQL 报错信息整理及解决方案(持续更新)

整理一下自己遇见过的 SQL 各种报错信息及相应解决方法,方便以后查阅,主要平台为 Oracle: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值: 原因:插入操作时,数据大于字段设定大小,Oracle 会自动将数据转为 long 型,然后报插入失败错误. 解决:更改数据大小,或者将字段设为 clob 或 blob 类型. "ORA-01012: not logged on" 以及 "Connected to an idle instance":

mysql - sql报错You can't specify target table 'table_name' for update in FROM clause

今天写了个更新数据库表的语句,本意是根据某个条件,筛选出该表某些数据之后,对这些数据进行删除操作,如下 delete from t_person where id in (select id from t_person where name = "hello"); 然而却报错: You can't specify target table 't_person' for update in FROM clause 以下这篇博客( https://blog.csdn.net/qq_2967

第一讲SQL命令的DDL和DML操作讲解

知识点: 一.sql命令DDL(结构化操作) 二.sql命令DML操作(增删改查) 1.sql命令DDL(结构化操作) 1.1表添加字段: alter table 表名 add 列定义 如: alter table Student add email varchar(128); 1.2 修改字段: alter table 表名 change 旧字段名 新字段名: alter table Student change email StuEmail varchar(256); 1.3删除字段: al

数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数

SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函数的基本类型是: Aggregate 函数 Scalar 函数 合计函数(Aggregate functions) Aggregate 函数的操作面向一系列的值,并返回一个单一的值. 注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使

mysql 更新sql报错:You can't specify target table 'wms_cabinet_form' for update in FROM clause

数据库里面有两个字段的位置不对,要把他们对调换下.因为没有数据库写的权限,需要用sql语句来实现.原来以为简单的 update table a set a.字段a=(select b字段 from table  where id=?) ,set a.字段b=(select a字段 from table where id=?) where id=? ,结果报了 这个问题 You can't specify target table 'wms_cabinet_form' for update in