大家都知道聚合函数是做统计用的,而count函数是统计行数的,也就是满足一定条件记录的行数。

下面我们来看下这个count与NULL的微妙关系。

CREATE TABLE dbo.Student
(Sno int  null
,Name nvarchar(23)
)
INSERT INTO dbo.Student(Sno,Name)VALUES(1,'Jesse');
INSERT INTO dbo.Student(Sno,Name)VALUES(2,'Jessca');
INSERT INTO dbo.Student(Sno,Name)VALUES(3,'June');
INSERT INTO dbo.Student(Sno,Name)VALUES(4,'Supper');
INSERT INTO dbo.Student(Sno,Name)VALUES(NULL,'Mike');

SELECT * FROM dbo.Student

我们向表student插入了5条记录,其中一条的SNO为NULL。

通常的一种方法是用count(*)

SELECT COUNT(*) FROM dbo.Student
SELECT COUNT(Name) FROM dbo.Student
SELECT COUNT(Sno) FROM dbo.Student
SELECT COUNT(1) FROM dbo.Student

Result:

大家会疑惑这种结果。为什么count(1)会是5.下面我们来研究下下面的几个查询。

SELECT * FROM dbo.Student
SELECT Name FROM dbo.Student
SELECT Sno FROM dbo.Student
SELECT 1 FROM dbo.Student

  

select 1 是显示结果和表中结果总行数行匹配的,不管是不是NULL。 但是SNO里面有一个NULL,编译器就识别这条记录是无效的。

以上理解仅仅是个人体会,有可能不是太专业,或者有很多错误,还行大路大神多多指教。

转载于:https://www.cnblogs.com/Jesse-Li/p/7137255.html

T-SQL 聚合函数Count与NULL相关推荐

  1. 第三章 SQL聚合函数 COUNT(一)

    文章目录 第三章 SQL聚合函数 COUNT(一) 大纲 参数 描述 没有行返回 流字段 第三章 SQL聚合函数 COUNT(一) 返回表或指定列中的行数的聚合函数. 大纲 COUNT(*)COUNT ...

  2. 第四章 SQL聚合函数 COUNT(二)

    文章目录 第四章 SQL聚合函数 COUNT(二) 权限 性能 未提交事务所做的更改 示例 第四章 SQL聚合函数 COUNT(二) 权限 要使用COUNT(*),必须对指定的表具有表级别的SELEC ...

  3. SQL 聚合函数一定要跟group by以及NULL的关系的案例精讲

    SQL 聚合函数与GROUP BY NULL的关系及ALL的使用说明 需求说明 有如下一道SQL题,网友咨询: 1 为啥正确答案是第二项? 2 聚合函数是否一定要跟GROUP BY PARTITION ...

  4. 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP

    文章目录 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP 大纲 参数 描述 当前事务期间所做的更改 示例 第十二章 SQL聚合函数 VARIANCE, VAR_SAM ...

  5. 第五章 SQL聚合函数 %DLIST

    文章目录 第五章 SQL聚合函数 %DLIST 大纲 参数 描述 %DLIST 和 %SelectMode %DLIST和ORDER BY 相关的聚合函数 示例 第五章 SQL聚合函数 %DLIST ...

  6. 第八章 SQL聚合函数 MAX

    文章目录 第八章 SQL聚合函数 MAX 大纲 参数 描述 数据值 当前事务期间所做的更改 示例 第八章 SQL聚合函数 MAX 返回指定列中最大数据值的聚合函数. 大纲 MAX([ALL | DIS ...

  7. 第二章 SQL聚合函数 AVG

    文章目录 第二章 SQL聚合函数 AVG 大纲 参数 描述 数据值 对单个值求平均值 优化 当前事务期间所做的更改 示例 第二章 SQL聚合函数 AVG 返回指定列值的平均值的聚合函数. 大纲 AVG ...

  8. 第九章 SQL聚合函数 MIN

    文章目录 第九章 SQL聚合函数 MIN 大纲 参数 描述 数据值 在当前事务期间所做的更改 示例 第九章 SQL聚合函数 MIN 返回指定列中的最小数据值的聚合函数. 大纲 MIN([ALL | D ...

  9. 第七章 SQL聚合函数 LIST

    文章目录 第七章 SQL聚合函数 LIST 大纲 参数 描述 包含逗号的数据值 LIST 和 %SelectMode LIST 和 ORDER BY 最大列表大小 相关的聚合函数 示例 第七章 SQL ...

最新文章

  1. linux脚本外输入参数,shell 脚本中关于用户输入参数的处理
  2. 双通道和单通道区别_实测内存通道的区别:单通道比双通道内存更有优势?
  3. 两个iphone怎么大量传照片_「唯物」传个视频到 iPhone,有了新方法
  4. python关键词提取_如何从Python格式字符串中提取关键字? - python
  5. I²C那点事儿(一)
  6. GDAL使用插件方式编译HDF4、HDF5以及NetCDF的bug修改
  7. SpringBoot集成Dubbo+Zookeeper
  8. 机器学习-决策树(ID3、C4.5、CART)
  9. 深度学习神经网络的预测间隔
  10. CMU 15-213 Introduction to Computer Systems学习笔记(3) Floating Point
  11. floodlight路由机制分析
  12. 【车牌识别】基于模板匹配算法实现车牌识别matlab源码
  13. MOSFET器件手册关键参数解读
  14. html中scc样式背景渐变,中琅条码生成软件如何制作SCC-14条码
  15. 在淘宝上遭遇诈骗卖家
  16. 仅用 1/4 数据量还原真人语音100%细节,火山语音上新超自然对话语音合成技术...
  17. CNCERT在FIRST会议关于国内PC被攻击的数据
  18. 目标检测——使用yolov6调用本地摄像头进行实时检测
  19. CMMI5个等级和22个过程域
  20. LeetCode第 310 场周赛

热门文章

  1. SAP PM入门系列20 - IH08 Equipment报表
  2. 12种Dropout方法:应用于DNNs,CNNs,RNNs中的数学和可视化解释
  3. PLM在企业中的实际价值与意义
  4. Google 在印度建立 AI 实验室,致力于农业、医疗、教育
  5. 从产品经理向人工智能产品经理进阶 | 机器学习必备知识
  6. 【AI学习篇】实战深度学习(3):深度学习的数据表示
  7. Tensorflow—继续优化,使MNIST准确率98%以上
  8. Cell颠覆性发现:中脑神经元的新作用
  9. 城市智能化发展中,AI公司应该做什么?
  10. 嫦娥“挖土”归来有多难?看看中国首颗返回式卫星的故事