sql - 避免在 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
解决方案
在 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
推荐阅读
- java - 尝试保存到数据库时使用 Spring Boot JPA 的 NullPointerException
- reactjs - 是否可以在 React 中使用 brotli 压缩?
- node.js - 运行 npm run main 时出现分段错误(核心转储)错误
- rest - 如何使用 appscript 触发 Google Composer Airflow dag?
- html - 如何在 3 列中显示列表
- c++ - Qt:你如何处理 QAbstractItemView 的焦点变化
- javascript - addfields 未定义
- javascript - 如何在 React 中定义 setFieldValue
- android - 通过 adb 禁用和启用 android 触摸屏
- java - 使用 java 密钥库导入信任证书失败