在 SQLite 中使用 CASE 语句和 SELECT 来排除显示某些结果

Using CASE statement along with SELECT in SQLite to exclude displaying certain results

我试图解决SQLite中“数据库中每个性别的人数,其中性别已知,显示每个性别的人数”的问题。我输入了一个查询

SELECT sex, COUNT(name) from employee_table GROUP BY sex ORDER BY sex DESC;

这是部分正确的,因为它在输出中显示了男性和女性的数量。但是,它也显示了未分类为男性或女性的空白条目的数量。

我必须停止显示空白条目的计数。我想为此,我必须使用 CASE 语句。我以不同的方式尝试了 CASE 语句。但这些都没有用。我尝试搜索互联网和堆栈溢出并尝试了这些方法。那些也没用。

如有任何帮助,我们将不胜感激。

谢谢, 理查德

您想 过滤 结果,而 case 表达式无法做到这一点。没有样本数据,很难确切地说表达式是什么,但也许:

SELECT sex, COUNT(name) 
FROM employee_table
WHERE sex IS NOT NULL
GROUP BY sex
ORDER BY sex DESC;

如果“空白”结果确实是空字符串,则为:

WHERE sex <> ''

这也会过滤掉 NULL 个值。

或者如果你想要明确的值,那么你可以使用 IN:

WHERE sex IN ('m', 'f')