2013-02-13 55 views
2

我想知道查询优化的Count(*)和Count(1)之间有什么区别。在研究它时,我遇到了Ask Tom这是oracle,并表示两者在执行时间方面相同。什么时候使用Sql Server 2008中的Count(*)和Count(1)

  1. 是否也适用于SQL Server 2008
  2. 如果是,那么为什么有两个diff功能相同?
  3. 如果没有哪个用于更好的优化?
  4. 是否有我们应该在哪里使用COUNT(*)在计数(1)和副-A-诗句

回答

2

COUNT (*)任何情况下是一样的COUNT(1)。实际情况是,“*”实际上是默认选项,不需要指定。Count(*)包含所有非NULL值。如果在COUNT函数中使用列名称或任何常量。它会给你非空值

-1

它应该是相同的。按照COUNT "COUNT ({ [ [ ALL | DISTINCT ] expression ] | * })"的定义,所以1被视为非空表达式。