在mySQL中,如果我想在一个查询中查找列的空值和非空值之和,我可以使用
SELECT
SUM(col IS NOT NULL),
SUM(col IS NULL)
FROM test
但是,相同的语法在Teradata中不起作用(语法错误:预期单词'col'和'IS'之间有一些区别。)
如何使以上逻辑适应Teradata?
答案 0 :(得分:1)
使用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;
或者,使用COUNT()
:
SELECT COUNT(col),
COUNT(*) - COUNT(col)
FROM test;
这两种都是标准SQL,并且可以在任何数据库中使用。