使用 COUNT(column) SQL Server 时返回 NULL 而不是 0

And*_*rey 1 sql sql-server null case

我查询哪个运行良好并且它执行两种类型的工作,COUNT 并且SUM.

就像是

select 
    id,
    Count (contracts) as countcontracts,
    count(something1),
    count(something1),
    count(something1),
    sum(cost) as sumCost
from 
    table
group by 
    id
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果给定 ID 没有合约,它将返回 0 forCOUNTNullfor SUM。我想看到 null 而不是 0

我正在考虑这种情况,Count (contracts) = 0 then null else Count (contracts) end但我不想这样做,因为我在查询中有超过 12 个计数位置及其预先拥有的大量记录,所以我认为这可能会降低查询性能。

还有其他方法可以用 代替 0 吗NULL

uzu*_*zul 5

尝试这个:

select NULLIF ( Count(something) , 0)
Run Code Online (Sandbox Code Playgroud)