【发布时间】:2017-09-11 18:31:59
【问题描述】:
当我这样做时
CREATE VIEW Test1 AS
WITH OneRow AS (SELECT a = 1)
SELECT countt = COUNT(*)
FROM OneRow
GO
SELECT COLUMN_NAME, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Test1'
我明白了
COLUMN_NAME IS_NULLABLE
----------- -----------
countt YES
我本来希望IS_NULLABLE 是NO,因为我认为COUNT(*) 总是返回一个数字。
在哪些情况下COUNT(*) 可以返回NULL?把它包装成ISNULL(COUNT(*), 0) 有什么危险吗?有必要这样做似乎很奇怪。确实,在任何情况下COUNT(anything) 可以返回NULL?
【问题讨论】:
标签: sql-server sql-server-2005