2016-04-06 15 views
1

プロジェクトでトータルな詳細を作成していますが、クエリの「COUNT」に関する問題があります。 nullも計算されます。私が欲しいのは、それ以外の値で列を数えれば、クエリはNULL列を数えないということです。SQL COUNT(列)間違ったヌル値もカウントします

は、ここで値がnullであるため、その結果数が3と4はないだろう私のコード

SELECT COUNT(columnName) as TotalColumnValue FROM tblName 

| columnName| 
|  value| 
|   | 
|  value| 
|  value| 

です。

ありがとうございます。

+2

NULL値をカウントしません。データに空の文字列が含まれている可能性があります。 –

+0

私はAbdulに同意します。 https://msdn.microsoft.com/en-us/library/ms175997.aspxを確認してください。COUNT(*)として使用しない限り、SQL Server Count()関数はNULL値をカウントしません。おそらく空の文字列値がありますこれはNULLとは異なります。 SELECTステートメントを実行すると、SSMSの値が '' – Eralper

答えて

4
を使用

実際、count(columnName)はnull値を数えないので、すべての回答で言及したような条件が必要です。IS NOT NULLだから、基本的に空の文字列値をフィルターに掛けてカウントの列を指定するだけで十分です。

SELECT COUNT(columnName) as TotalColumnValue 
FROM tblNam 
WHERE columnName <> '' 

注 - >コメントに質問しました。 <>!=を意味します。つまり、 - NOT EQUAL

+0

<>はどういう意味ですか? –

+0

@mark私は答えを更新しました。それは等しくないことを意味します。 – sagi

+0

私はあなたのコードがシンプルでより役に立ちました。 :)ありがとうございます@サギ:) –

2

問題を解決する関数を追加します。 :)

SELECT COUNT(columnName) as TotalColumnValue FROM tblName where columnName is not null 
+0

ではなくNULLになっています。すでに試しましたが、ヌルの列をまだカウントしています –

+0

あなたはどのデータベースを使用しているのでしょうか? –

+0

値が実際にnullの場合、このコードは機能します。 –

2

あなたはNULLempty string ''の両方を除外する必要があります。

SELECT COUNT(columnName) as TotalColumnValue FROM tblName 
WHERE columnName <> ''; 
+0

<>はどういう意味ですか? –

+0

は「not equal」を意味します –

4

値が本当にNULLであれば、COUNTは、その行を除外しなければなりません。たぶんNULLではなく、空の文字列''である可能性があります。あなたのコラムでNULLIFを追加してみてください:

CREATE TABLE tbl(columnName VARCHAR(10) NULL); 
INSERT INTO tbl VALUES ('value'), ('value'), ('value'), (''); 

SELECT COUNT(NULLIF(columnName, '')) FROM tbl; 

それとも、空の文字列をフィルタリングすることができます:あなたが異なる値の数は(繰り返しの値をカウントしない)場合

SELECT COUNT(columnName) FROM tbl WHERE columnNameIS NOT NULL AND columnName <> '' 
+0

しかし、カウントでこの行を除外する必要があると言えば、どうしてそれらをフィルタリングしますか? – sagi

+0

'NULL '値だけが' COUNT'によって除外されます。空の文字列 ''''はそうではありません。ですから 'WHERE'節でそれらをフィルタリングしなければなりません。 –

+0

はい、ヌル値ではなく空の文字列をフィルタリングする必要があります。 – sagi

2

SELECT DISTINCT COUNT(columnName) AS TotalColumnValue FROM tblName WHERE columnName IS NOT NULL

関連する問題