2013-09-08 2 views
-5

Sur le serveur sql, count (colonne) compte également les colonnes NULL? J'ai eu cette question dans mon examen et j'ai été confus mais à la fin j'ai donné la réponse que oui compte (colonne) comptera aussi la colonne vide. Je me demandais juste si j'avais raison ou tort. Quelqu'un a une idée à ce sujet?Requête de compte SQL Server (colonne)

+0

pourquoi ne pas le google? –

+0

La [documentation] (http://technet.microsoft.com/fr-fr/library/ms175997.aspx) répond à cette question. – hvd

+1

duplication possible de [count (\ *) vs count (nom de colonne) - qui est plus correct?] (Http://stackoverflow.com/questions/3003457/count-vs-countcolumn-name-which-is-more -correct) –

Répondre

7

Qu'est-ce qui vous a empêché de le vérifier par vous-même?

CREATE TABLE Test (VALUE VARCHAR(10)); 

INSERT INTO TEST VALUES ('sdfsdf'), ('sdfgsdfg'),(NULL),(NULL); 

SELECT COUNT(VALUE) FROM Test 

Résultat:

COUNT(VALUE) 
2 

Donc, la réponse est NON . COUNT(ColumnName) ne compte pas les lignes avec les valeurs NULL.

SQLFiddle

+0

Votre réponse est incomplète (incorrecte). Qu'en est-il de 'COUNT (*)'? –

+7

@HamletHakobyan La question concerne 'COUNT (colonne)', ainsi que la réponse. – MarcinJuraszek

+0

En fait, je n'ai pas de serveur SQL installé dans mon ordinateur portable. C'est pourquoi ne pouvait pas vérifier. Quoi qu'il en soit Merci pour la réponse. – user2758530

1

Voici ce que le BOL (Books OnLine) article about COUNT a à dire:

COUNT (*) renvoie le nombre d'éléments dans un groupe. Cela inclut les valeurs NULL et les doublons. COUNT (ALL expression) évalue l'expression pour chaque ligne d'un groupe et renvoie le nombre de valeurs non nulles. COUNT (expression DISTINCT) évalue l'expression pour chaque ligne d'un groupe et renvoie le nombre de valeurs uniques et non nulles.

+1

Je pense qu'il serait préférable d'inclure également le peu de la documentation où il est dit 'COUNT (expression)' signifie 'COUNT (ALL expression)'. "ALL: Applique la fonction d'agrégat à toutes les valeurs ALL est la valeur par défaut." Je peux voir quelqu'un lire ceci et penser "Mais qu'en est-il de COUNT (nom de colonne)? Cela n'est pas dans votre liste." – hvd