,,select count()和select count(1)的区别和执行方式讲解

,,select count()和select count(1)的区别和执行方式讲解

今天,边肖将与您分享一个关于select count()和select count(1)的区别和实现的解释。边肖觉得内容挺好的,现在分享给大家,很有参考价值。有需要的朋友应该跟着边肖去看看。

Count(*)或Count(1)或Count([ column])可能是SQL Server中最常用的聚合函数。很多人其实分不清三者的区别。本文将解释其功能、关系及其背后的原理。

经常看到一些所谓的优化建议,用Count(*)代替Count(1),可以提高性能。给出的理由是Count( *)会带来全表扫描。其实Count怎么写没什么区别。

其实Count(1)和Count(*)的意思是评估Count()中的表达式是否为空,为空则不计数,不为空则计数。例如,如代码1所示,我们在Count中指定NULL(优化器不允许显式指定NULL,所以需要将其赋给变量来指定)。

声明@xx INT

SET @xx=NULL

从[AdventureWorks2012]中选择COUNT(@xx)。【销售】。[销售订单标题]

清单1。1中指定了NULL。计数代码。因为所有行都是空的,所以结果根本不计算在内。很明显,结果是0。

因此,当您指定Count(*)或Count(1)或任何计数(' any ')时,结果将是相同的,因为这些值不为NULL,如下图所示。

只要在Count中指定了NULLn-null表达式,结果就没有区别。

如果只看结果,Select Count(*)和Select Count(1)的返回结果是相同的。

如果表没有主键,则count(1)比count(*)快。如果有主键,那么当主键是count的条件时,count(主键)是最快的。

如果您的表只有一个字段,那么count(*)是最快的。

与count(1)的结果一样,count(*)包含NULL的统计信息,而count(column)是不包含NULL的统计信息。

1、select 1 与 select *的区别

选择常量自.对应于所有行,并且总是只返回一个值,即常量。所以normal只会用来判断有没有(比如exists子句)。并选择* from.是返回所有行的所有列。

性能上的差异取决于您的from和where子句。例如,如果您可以在where条件中传递索引,那么显然select 1 from的性能.优于select * from.

2、select sum(1)的使用

Select (*)返回符合条件的所有记录的数目,与select sum(1)相同。

但是sum()可以传递任意数,负数或者浮点数,返回值就是传入的值n*满足条件的记录数m。

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: