sql中count(1)和count (*)有什么区别
时间: 2024-09-04 20:01:19 浏览: 53
sql server中Select count(*)和Count(1)的区别和执行方式
5星 · 资源好评率100%
在SQL查询中,`COUNT(1)` 和 `COUNT(*)` 都用于计算表中行的数量,但它们之间有一些微妙的区别:
1. `COUNT(1)`:这个表达式实际上等同于 `COUNT(*)`,因为它会统计所有非空值。无论列的内容是什么,只要不是NULL,都会被计入计数。所以,如果你明确指定 `COUNT(1)`,它的结果与 `COUNT(*)` 是一样的。
2. `COUNT(*)`:这是一个通用的方法,它会计算表中的所有行,包括那些有NULL值的行。如果表中存在 NULL 值,那么 `COUNT(*)` 会将这些 NULL 计入总数中,而 `COUNT(1)` 则不会。
总结来说,当不需要排除 NULL 值时,两者效果一样;但如果需要精确地得到非 NULL 行的数量,应该使用 `COUNT(1)` 或者更确切地说明要计数哪些列(例如 `COUNT(column_name)`)。
阅读全文