在单个查询中获取特定字段/列中包含 Null 和非 Null 值的记录摘要的优雅方法是什么?
我正在使用这个,有点有效,但必须根据结果计算非空值。有问题的表称为“BatchHeaders”,相关字段是“Updated”,一个“Date”字段,当为 Null 时被视为“Not Updated”。
WITH TableA as (
SELECT
count(Id) as Total,
1 as Idx
FROM BatchHeaders
)
SELECT
TableA.Total,
count(Id) as NotUpdated,
1 as Idx
FROM BatchHeaders
JOIN TableA on TableA.IDX=Idx
WHERE Updated is NULL;
您可以在没有WITH子句的情况下执行此操作,如下所示。
enter code here
选择 COUNT(Id) AS 总计, COUNT(CASE WHEN Updated IS NULL THEN 1 END) AS NotUpdated, COUNT(CASE WHEN Updated IS NOT NULL THEN 1 END) AS Updated FROM BatchHeaders;