Pourquoi ne sont pas les valeurs null comptés dans le NOMBRE(columnname)

Donc, je suis tombé sur quelque chose l'autre jour, au travail, en essayant de compter le nombre de valeurs nulles après l'exécution d'une importation.

J'ai donc fait:

select COUNT(columnname) from table 
WHERE ColumnName is null

Qui ne compte pas les valeurs null...

Puis je l'ai fait,

select COUNT(*) from table 
WHERE ColumnName is null

Qui m'a donné le nombre de.

Donc, quelque chose qui m'énerve est exactement pourquoi ceci ne compte pas les valeurs null.

J'ai regardé cette question (avec une bonne recherche autour de Google...):
Dans SQL, quelle est la différence entre le comte(colonne) et count(*)?,
et tandis qu'il me dit que COUNT(columnname) ne compte pas les valeurs null, je voudrais savoir exactement pourquoi les valeurs null ne sont pas pris en compte à l'aide de cette méthode?

Merci Beaucoup,
James.

Pourquoi? Pour l'un, parce qu'il a été défini de cette façon dans le standard SQL. Le raisonnement derrière que les exigences en est donnée dans Jeffrey réponse.
Ce doit être marqué avec le SGBD particulier qui a été utilisé, que les comportements peuvent différer (probablement pas dans ce cas, mais c'est des conseils généraux)
fait, merci underscore_d

OriginalL'auteur James Hatton | 2014-10-14