Quand jePourquoi SQL Server 2005 pense que COUNT (...) est nullable?
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'
Je reçois
COLUMN_NAME IS_NULLABLE
----------- -----------
countt YES
Je me serais attendu à IS_NULLABLE
être NO
, cependant, car je pensais que COUNT(*)
retourne toujours un nombre.
Existe-t-il des circonstances dans lesquelles COUNT(*)
peut renvoyer NULL
? Y a-t-il un danger à l'enrouler comme ISNULL(COUNT(*), 0)
? Il semble étrange que cela soit nécessaire. En effet, y a-t-il un scénario dans lequel COUNT(
quoi que ce soit)
pourrait renvoyer NULL
?
Si vous citez des choses, utilisez un '>' pour le citer correctement (ou le bouton blockquote). Sinon, vous serez marqué pour violation du droit d'auteur. –
En d'autres termes, la colonne est * techniquement * nullable, mais elle ne doit jamais renvoyer une valeur nulle. –