一个Teradata查询中的空值和非空值计数

时间:2019-09-12 23:32:18

标签: sql teradata

在mySQL中,如果我想在一个查询中查找列的空值和非空值之和,我可以使用

SELECT 
SUM(col IS NOT NULL),
SUM(col IS NULL)
FROM test

但是,相同的语法在Teradata中不起作用(语法错误:预期单词'col'和'IS'之间有一些区别。)

如何使以上逻辑适应Teradata?

1 个答案:

答案 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,并且可以在任何数据库中使用。