当我尝试从我的sql表中的列中获取值的计数时,它返回该列的所有值的记录但是我需要的是如果列中有空记录那么count不应该得到空记录但是应该计算其他值记录。 这是我的查询来计算列的值
SELECT COUNT( dt_UserTTrainingDate2) as a FROM ref_CourseRegistration_Users
有办法吗?
答案 0 :(得分:2)
使用此构造:
SELECT COUNT(NULLIF(dt_UserTTrainingDate2,'')) as a
FROM ref_CourseRegistration_Users
它使用NULLIF()函数来比较2个值,如果它们相等则返回NULL。在这种情况下,结果NULL将不包括在count
中答案 1 :(得分:0)
根据评论判断,您的dt_UserTTrainingDate2
列不是DATE类型,而是某种字符串类型。这是糟糕的数据库设计;使用内置类型。
鉴于它是一个字符串,你必须始终在SQL中更加努力。使用错误的类型,它真的是为你自己制作一根杆,但那是你的问题,而不是我们的问题。
SELECT COUNT(dt_UserTTrainingDate2) AS a
FROM ref_CourseRegistration_Users
WHERE dt_UserTTrainingDate2 != ' ';
计算日期字符串不为空的行。它还会忽略任何具有NULL值的行。
道德:使用DATE类型存储日期。