- 爲什麼
SELECT COUNT(1+NULL)
回報0
即使SELECT 1+NULL
回報NULL
- 相對爲什麼
SELECT COUNT(NULL)
返回錯誤信息Operand data type void type is invalid for count operator
即使SELECT NULL
回報NULL
回答
爲什麼SELECT COUNT(1 + NULL)返回即使0 SELECT 1 + NULL返回NULL
執行任何操作與NULL將返回NULL。所以1 + NULL將返回NULL。 select返回單個值(它是NULL),因爲這是計算結果。
COUNT()
根據其計數方式而有所不同。 COUNT(*)
返回引用表的基數,即行數。然而,在括號內放置一個表達式,並且COUNT()
將消除NULL; 1 + NULL爲NULL所以COUNT(1 + NULL)消除了你提供的一個值並返回0
相對爲什麼SELECT COUNT(NULL)返回錯誤消息操作數的數據類型void類型爲偶數計數操作無效儘管SELECT NULL返回NULL。
NULL
沒有隱式類型,所以COUNT()
不知道如何處理它並拋出錯誤。
1 + null
是null
,但count()
合計計數不爲空,它不喜歡總和。 你的例子是像Sum(1 +null)
:= null
見:SELECT SUM(1+ NULL),COUNT(1+ NULL)
COUNT聚合函數的COUNT()形式返回所有非空值的計數。這在SQL Server聯機叢書(http://msdn.microsoft.com/en-us/library/ms175997.aspx)中進行了描述:「計算組中每行的表達式並返回非空值的數量。」你的第一個例子傳遞一個NULL值,所以結果數爲零。
關於「操作數數據類型void」錯誤,SQL Server 2012及更高版本中的錯誤消息更加清晰。在SQL Server 2008 R2之後的版本中,您將收到消息「操作數數據類型NULL對count運算符無效」。由於未知的數據類型。當一個無類型的NULL表達式直接由SELECT語句返回時,行爲是不同的。在這種情況下,SQL Server隱式使用數據類型int作爲表達式元數據。
- 1. SQL Server計數功能
- 2. SQL Server 2016審計功能
- 3. 流動型/ jQuery的 - 物業`datepicker`物業在功能
- 4. 功能在SQL Server
- 5. 功能在SQL Server
- 6. 在SQL Server功能
- 7. SQL Server - 使用計數功能與相交
- 8. SQL計數功能
- 9. SQL Server的功能
- 10. SQL Server 2005作業計劃
- 11. SQL Server與postgres類似的功能
- 12. 在sql server中有沒有與ISNULL相反的功能?要做不是null?
- 13. 功能在SQL Server 2008
- 14. TRIM功能在SQL Server
- 15. Concat NULL與Varchar SQL Server 2008
- 16. SQL Server中ISNULL與IS NULL
- 17. 在SQL Server中計算營業日
- 18. SQL Server查詢與計數返回null或者沒有結果
- 19. SQL Server PIVOT功能
- 20. 優化SQL Server查詢與功能
- 21. SQL Server 2008 FILESTREAM功能與VLDB
- 22. SQL Server 2008替換功能與排除
- 23. NULL日期計算的SQL Server
- 24. SQL Server的最大功能
- 25. 功能的SQL Server 2008
- 26. MAX功能的SQL Server
- 27. 功能NHibernate的SQL Server 2012
- 28. Sql Server的替換功能
- 29. 的SQL Server:功能觸發
- 30. 數組像SQL Server 2008中的功能
好問題,我想你可以從閱讀以下內容開始:http://technet.microsoft.com/en-us/library/ms191504(v=sql.105)。aspx –