sql语句中count(0)和count(1)的区别

sql语句中count(0)和count(1)的区别,第1张

一、意思不同

count(1)会统计包括null值的所有符合条件的字段的条数。count(0)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入),distinct 列名,得到的结果将是除去值为null和重复数据后的结果 。

二、作用不同

主要还是要count(1)所相对应的数据字段。

如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。  因为count(),自动会优化指定到那一个字段。所以没必要去count(),用count(),sql会帮你完成优化的 。

三、使用结果不同

当abc为空的时候,第二种不算入count中,而第一种是无条件的都算入count中,比例一列数据

字段名叫abc

A

B

NULL

这样的话,第一种查询是3条,而第二种查询的结果是2条。

可以这样写

select sum(iif(sex='男',1,0)) as 人数 from stuinfo

也可以用case when

select sum(case sex when '男' then 1 else 0 end)) as 人数 from stuinfo

sql语句中count,就是DELPHI中ADOrecordcount。

通过ADO实现步骤如下:

1、创建ADOQuery控件,并将sql写入ADOquery;

2、初使化ado,即close>>open,如有条件参数还需传入条件参数;

3、调用ADOrecordcount。

附实例代码如下图:

以上就是关于sql语句中count(0)和count(1)的区别全部的内容,包括:sql语句中count(0)和count(1)的区别、sql 语句 count 使用请教、在Delphi 7里做统计时,sql语句中count 怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10174926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存