如何在SUM CASE WHEN语句中将null替换为0?

时间:2019-05-13 18:08:53

标签: sql tsql

我正在使用CASE WHEN语句和SUM函数。我想用0替换所有空值。

我尝试在语句末尾添加0。

这是我当前的代码

select    ID, PT_Number,
          ORGANIZATION,
          [Approved] = sum(case when PT_TYPE = 'Lend' then Approved END),
          [Disbursed] = sum(case when PT_TYPE = 'Give' then Disbursed end),
          [Repaid] = sum(case when PT_TYPE = 'Pay' then Payment end)
from      TABLE1
group by  ID, PT_Number,
          ORGANIZATION

这就是我正在尝试的

          [Approved] = sum(case when PT_TYPE = 'Lend' then Approved END, 0),
          [Disbursed] = sum(case when PT_TYPE = 'Give' then Disbursed end, 0),
          [Repaid] = sum(case when PT_TYPE = 'Pay' then Payment end, 0)

1 个答案:

答案 0 :(得分:4)

只需添加一个else子句:

select    ID, PT_Number,
          ORGANIZATION,
          [Approved] = sum(case when PT_TYPE = 'Lend' then Approved else 0 END),
          [Disbursed] = sum(case when PT_TYPE = 'Give' then Disbursed else 0 end),
          [Repaid] = sum(case when PT_TYPE = 'Pay' then Payment else 0 end)
from  TABLE1
group by ID, PT_Number, ORGANIZATION;

您也可以使用coalesce(),但这似乎有些过分。