2013-11-15 2 views
1

Я хочу, чтобы подсчитать общее количество фермеров в колонке, но я хочу, чтобы мой запрос, чтобы избежать «-» вSql запрос Count (Избегайте «-» запись)

колонок, как я могу сделать that.Instead Of Нулевые значения у моего стола есть «-».

adapter.SelectCommand = new SqlCommand("SELECT COUNT(FarmerName) AS 
Total_Number_Of_Farmers FROM try", con); 

ответ

3

Возможно, я не понимаю вопрос, но разве это не сработает?

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 если какой-либо и b равны. COUNT(a) только подсчитывает значения NOT NULL, поэтому таким образом вы должны считать только значения, которые не являются '-'.

+0

да он работал ... – user1056466

+0

Я уверяю вас, что другой один медленнее, и это не сработает, если фермер имеет двуствольное имя .. – OGHaza

+0

хорошо, если я хочу считать «-» во всех столбцы, как я это сделаю? adapter.SelectCommand = new SqlCommand ("select count (*) from try where DistrictName = '-' OR TownName = '-'", con), но это не работает должным образом – user1056466

1
SELECT COUNT(FarmerName) AS Total_Number_Of_Farmers 
FROM try 
WHERE FarmerName not like '%-%' 
Смежные вопросы