列内の Farmers の総数をカウントしたいが、クエリで "-" を避けたい
列はどうすればそれを行うことができますか。Null値の代わりに、テーブルには「-」があります。
adapter.SelectCommand = new SqlCommand("SELECT COUNT(FarmerName) AS
Total_Number_Of_Farmers FROM try", con);
質問を誤解しているかもしれませんが、これはうまくいきませんか?
SELECT COUNT(FarmerName) AS Total_Number_Of_Farmers
FROM try
WHERE FarmerName <> '-'
また
adapter.SelectCommand = new SqlCommand("SELECT COUNT(FarmerName) AS Total_Number_Of_Farmers FROM try WHERE FarmerName <> '-'", con);
一度に複数の列に対してそれを行う必要がある場合 (コメントで要求されているように)、次のように動作するはずです。
SELECT COUNT(DISTINCT(NULLIF(DistrictName,'-'))) AS Unique_DistrictNames
,COUNT(DISTINCT(NULLIF(TownName,'-'))) AS Unique_TownNames
FROM try
NULLIF(a, b)
NULL
a と b が等しい場合に返します。COUNT(a)
である値のみをカウントするNOT NULL
ため、この方法では、ではない値のみをカウントする必要があります'-'
。