SELECT COUNT( * ) 与SELECT COUNT( 1 ) 区别

在 SQL 中,SELECT COUNT(*)SELECT COUNT(1) 都用于统计符合条件的行数,但它们在具体实现和效率上有一些区别。

  1. SELECT COUNT(*):这是一种常见且通用的写法,它会统计所有符合查询条件的行数,包括所有列,不包括 NULL 值。它会对查询的每一行进行计数,这可能涉及扫描整个表或使用索引。

  2. SELECT COUNT(1):这是一种更为简洁和高效的写法。它会统计符合查询条件的行数,但实际上并不关心查询的具体列。因为我们只关心存在与否,所以使用任意常量(例如 1)代替列名即可。

在实际运行中,SELECT COUNT(1) 往往比 SELECT COUNT(*) 更高效。这是因为数据库引擎在执行查询时,并不需要获取所有列的数据,只需要判断是否存在即可。使用 SELECT COUNT(1) 可以避免读取额外的数据,从而提高查询性能。

SELECT COUNT(*) 写法可以根据某个字段非空查询

例:SELECT COUNT(column_name) FROM TABLE

当然还可以这样写

复制代码
SELECT COUNT(CASE WHEN Column1 IS NOT NULL OR Column2 IS NOT NULL THEN 1 END) AS NonNullCount
FROM YourTable;
相关推荐
百***49004 小时前
SQL Server查看数据库中每张表的数据量和总数据量
数据库·sql·oracle
代码or搬砖5 小时前
MyBatisPlus中的常用注解
数据库·oracle·mybatis
盼哥PyAI实验室5 小时前
MySQL 数据库入门第一课:安装、账户、库、表与数据操作详解
数据库·mysql
h***59337 小时前
MySQL如何执行.sql 文件:详细教学指南
数据库·mysql
郑重其事,鹏程万里7 小时前
键值存储数据库(chronicle-map)
数据库·oracle
Doro再努力7 小时前
【MySQL数据库09】外键约束与多表查询基础
数据库·mysql
gkhost7 小时前
Linux基础——Oracle部署
oracle·表空间··instances
ss2737 小时前
019:深入解析可重入互斥锁:原理、实现与线程安全实践
java·数据库·redis
O***Z6167 小时前
三分钟内快速完成MySQL到达梦数据库的迁移
数据库·mysql
友友马9 小时前
『QT』窗口 (一)
开发语言·数据库·qt