2016-06-16 15 views
0

COUNTとWHERE句を使用して列のNULLの数を数えようとしています。 Attr_620_LookupのテーブルにNULLがある場合、このクエリの結果は0のカウントを返します。私はすべての行を数えることができ、NULLを引くことはできません..しかし、nullsを直接数える方法はありますか?SSMSでNullを直接カウントできません

SELECT Attr_616 AS Location, COUNT(Attr_620_Lookup) 
FROM dbo.AttributesDenormalized AS ad 
WHERE (Attr_620_Lookup IS NULL) 
GROUP BY Attr_616 

答えて

2

COUNTに式を指定すると、null以外の値がカウントされます。ただ、代わりにCOUNT(*)を使用します。

SELECT Attr_616 AS Location, COUNT(*) 
FROM dbo.AttributesDenormalized AS ad 
WHERE (Attr_620_Lookup IS NULL) 
GROUP BY Attr_616 
1

別に@DStanleyあなたはまた、SUMとcase文を使用することができます言及したものとは:

SELECT SUM(CASE WHEN MyField IS NULL THEN 1 ELSE 0 END) AS TheSum 
FROM TheTable 

あなたはしかし、NULLSとNON NULLSを扱った場合、これは素晴らしいことですあなたのWHERE句は特にNULLを要求します...あなたがすでに述べたように、私のcase文が少し冗長であることを意味します。...WHERE MyField IS NULL

+0

または類似の行に沿って:SELECT COUNT(MyFieldがNULLの場合は1を返します)AS TheCount FROM TheTable 。 –

関連する問題