sql - max 函数在有 case when 子句时没有
问题描述
我有两张桌子。一个如下
表一
身份证,计数 1, 123 2, 123 3, 123
表b
身份证,计数
表 b 为空
使用时
选择案例 WHEN isnotnull(max(b.count)) THEN max(a.count) + max(b.count) ELSE max(a.count) 从 a, b
唯一的结果总是 NULL 我很困惑。为什么?
解决方案
由于,表b
是空的,max(b.count)
将返回NULL
。并且使用 NULL 完成的任何操作都会导致NULL
.
所以,max(a.count) + max(b.count)
是NULL。(this is 123 + NULL which will be NULL always)
. 因此,您的查询返回 NULL。
每当 NULL 出现时,只需使用 acoalesce
来分配默认值。
推荐阅读
- javascript - React - 在空数组上使用状态
- ios - UIView hidden 未设置
- r - 根据给定的因子在R中按函数分组获取多列的百分比值
- mapping - Snakemake:通过一个通配符组合输入
- python - 我们可以使用 folium maps 来获取某种站点类型或站点描述吗?
- azure-devops - Azure DevOps - 看不到共享查询文件夹
- mysql - 使用 Laravel 进行网页抓取
- ruby-on-rails - 将字符串 arra 转换为整数数组
- flutter - 当权限被永久拒绝时,Flutter permission_handler 包不打开应用程序设置
- jestjs - 如何将 jest.spyOn 与 typescript 命名空间一起使用