2008-10-04 10 views
4

Je suis totalement nouveau à SQL. J'ai une sélection requête simple semblable à ceci:Ne pas obtenir le compte correct dans SQL

SELECT COUNT(col1) FROM table1 

Il y a quelque 120 enregistrements dans la table et présentés sur la GUI. Pour une raison quelconque, cette requête renvoie toujours un nombre inférieur au nombre réel.

Quelqu'un peut-il m'aider s'il vous plaît?

Répondre

13

Vous pouvez avoir des valeurs nulles dans la colonne col1. Les fonctions d'agrégation ignorent les valeurs nulles. essayer cette

SELECT COUNT(ISNULL(col1,0)) FROM table1 
17

Essayez

select count(*) from table1 

Edit: Pour expliquer plus loin, count(*) vous donne le nombre de lignes pour une table, y compris les doublons et les valeurs NULL. count(isnull(col1,0)) fera la même chose, mais légèrement plus lent, puisque isnull doit être évalué pour chaque ligne.

1

tangentielle légèrement, mais il y a aussi l'utile

SELECT count(distinct cola) from table1 

qui vous donne le numéro de la colonne distincte dans le tableau.

Questions connexes