用 0 替换 NULL

Replace NULL with 0

我有以下 CASE 表达式,将数据分为不同的类别并附上相应的小时数。

case
when Wstat_Name_Ch like '%Overtime signup%' then payhours
end as All_OT_Signup,
case
when  Wstat_Abrv_Ch in ('CO', 'COU', 'Otnoshow') then payhours
end as OT_Removed,
case
when  Wstat_Abrv_Ch in ('Ov', 'OTField', 'MinStafotp', 'OvUpsOT') then payhours
end as OT_Hours_Worked

语句returns这样的数据:

All_OT_Signup    OT_Removed   OT_Hours_Worked
500.00            NULL         NULL
350.00            150.00       100.00
200.00            NULL         NULL

我需要做的是用 0 替换任何 NULL。我尝试 ISNULL(payhours, 0) 代替 payhours,但它没有用。

只需在每个case表达式中添加一个else分支,即returns 0当第一个条件不匹配时:

case
    when Wstat_Name_Ch like '%Overtime signup%' then payhours
    else 0
end as All_OT_Signup,
case
    when  Wstat_Abrv_Ch in ('CO', 'COU', 'Otnoshow') then payhours
    else 0
end as OT_Removed,
case
    when  Wstat_Abrv_Ch in ('Ov', 'OTField', 'MinStafotp', 'OvUpsOT') then payhours
    else 0
end as OT_Hours_Worked