我觉得select count(XX)这里count后面的括号,似乎是多余的

awerewrwq 2016-04-19 06:40:36
count的作用是计数,那么这个()里面到底是填*还是填某个字段名,会影响结果吗?
w3school里面的一个例子: http://www.w3school.com.cn/sql/sql_func_count.asp
例子用了一个表

然后

SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Carter'

SELECT COUNT(*) AS CustomerNilsen FROM Orders WHERE Customer='Carter'
-----------------------------------------------------------------------------
结果不会有不同啊,都是一个"数字"而已。
()里面的内容如何影响结果呢?
...全文
255 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
spiritofdragon 2016-04-19
  • 打赏
  • 举报
回复
引用 1 楼 a275838263 的回复:
count(1),count(*),count(cols_name)基本上是一样的。 但是要是cols_name为null,这时候就不一样了。
对。 count(1),count(*)现在都一样,我记得看老版本的书,说老的sql写1比*快,但现在优化器都处理后都一样的了。 前两者都是有计数所有行; 而第三,是计数cols_name is not null 的所有行。
寡丶人 2016-04-19
  • 打赏
  • 举报
回复
count(1),count(*),count(cols_name)基本上是一样的。 但是要是cols_name为null,这时候就不一样了。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧