子查询为空时通过??0自动赋值为0会导致主表别名消失 返回
1.含??0,生成的sql主表会缺少别名`o`
o.ShouldExpendAmount==
(SqlFunc.Subqueryable<FinanceThirdPartyOrderApplyPayEntity>()
.Where(x => x.ThirdPartyOrderId == o.Id)
.Where(x => x.IsApproved == true)
.Sum(x => x.Amount)??0)
2.不含??0,生成的sql主表会正常生成别名`o`,但子查询实际数据为null,无法正常比较数字是否相等
o.ShouldExpendAmount==
SqlFunc.Subqueryable<FinanceThirdPartyOrderApplyPayEntity>()
.Where(x => x.ThirdPartyOrderId == o.Id)
.Where(x => x.IsApproved == true)
.Sum(x => x.Amount)
已升级最新版本SqlSugarCore包
热忱回答(4)
-
梦想家 VIP0
2026/1/22测试了一下其他的方法,子查询外包一层其他的SqlFunc方法,也会导致主表别名不生成
0 回复 -
fate stay night VIP0
2026/1/22改成
.Sum(x => x.Amount??0)
0 回复 -
fate sta VIP0
2026/1/22加到里面
0 回复 -
梦想家 VIP0
2026/1/23@fate stay night:当子表中的数据为空时,使用.Sum(x => x.Amount??0) 这种方式,子表汇总结果还是null,而不是预期的0
0 回复