2013-02-13 77 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被視爲非空表達式。