在 mySQL 中,如果我想查找一个查询中某一列的空值和非空值之和,我可以使用
SELECT
SUM(col IS NOT NULL),
SUM(col IS NULL)
FROM test
Run Code Online (Sandbox Code Playgroud)
但是,相同的语法在 Teradata 中不起作用(语法错误:预期在单词“col”和“IS”关键字之间存在某些内容。)
如何将上述逻辑应用到 Teradata 中?
使用CASE:
SELECT SUM(CASE WHEN col IS NOT NULL THEN 1 ELSE 0 END),
SUM(CASE WHEN col IS NULL THEN 1 ELSE 0 END)
FROM test;
Run Code Online (Sandbox Code Playgroud)
或者,使用COUNT():
SELECT COUNT(col),
COUNT(*) - COUNT(col)
FROM test;
Run Code Online (Sandbox Code Playgroud)
这两个都是标准 SQL,可以在任何数据库中使用。