首页 > 解决方案 > 避免在 CASE SQL SERVER 中使用 NULL 值

问题描述

如何通过 P.Id 避免 CASE 和 SUM 中的 NULL 值。问题是我在 DPB 表中有多个 DPB.ProductTypeId

SELECT  P.[Id], 
        CASE 
        WHEN DPB.ProductTypeId = 1 THEN SUM(DPB.BonusAmount)
        END AS [CasinoBonus]
FROM Player P           
JOIN PlayerBonus DPB ON P.[Id] = DPB.[PlayerId]
group by P.[Id],DPB.ProductTypeId

标签: sqlsql-serverselectcase

解决方案


在 sum 内的用例

 SELECT  P.[Id], 
            sum(CASE 
            WHEN DPB.ProductTypeId = 1 THEN DPB.BonusAmount
            else 0
            END) AS [CasinoBonus]
    FROM Player P           
    JOIN PlayerBonus DPB ON P.[Id] = DPB.[PlayerId]
    where P.[Id] is not null and DPB.[PlayerId] is not null
    group by P.[Id],DPB.ProductTypeId

推荐阅读