- 优化 子查询 sum/min/max/avg 默认加 isnull 防止为 NULL 情况;

This commit is contained in:
2881099
2022-05-10 09:28:04 +08:00
parent e2d6c890a9
commit 1b84a00696
22 changed files with 178 additions and 187 deletions

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -850,8 +850,8 @@ WHERE (exists(SELECT 1
all = a,
count = (long)select.As("b").Sum(b => b.Id)
});
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, (SELECT sum(b.Id)
FROM tb_topic22 b) as6
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, nvl((SELECT sum(b.Id)
FROM tb_topic22 b), 0) as6
FROM tb_topic22 a", subquery);
var subqueryList = select.ToList(a => new
{
@ -867,8 +867,8 @@ FROM tb_topic22 a", subquery);
all = a,
count = select.As("b").Min(b => b.Id)
});
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, (SELECT min(b.Id)
FROM tb_topic22 b) as6
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, nvl((SELECT min(b.Id)
FROM tb_topic22 b), 0) as6
FROM tb_topic22 a", subquery);
var subqueryList = select.ToList(a => new
{
@ -884,8 +884,8 @@ FROM tb_topic22 a", subquery);
all = a,
count = select.As("b").Max(b => b.Id)
});
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, (SELECT max(b.Id)
FROM tb_topic22 b) as6
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, nvl((SELECT max(b.Id)
FROM tb_topic22 b), 0) as6
FROM tb_topic22 a", subquery);
var subqueryList = select.ToList(a => new
{
@ -901,8 +901,8 @@ FROM tb_topic22 a", subquery);
all = a,
count = select.As("b").Avg(b => b.Id)
});
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, (SELECT avg(b.Id)
FROM tb_topic22 b) as6
Assert.Equal(@"SELECT a.Id as1, a.Clicks as2, a.TypeGuid as3, a.Title as4, a.CreateTime as5, nvl((SELECT avg(b.Id)
FROM tb_topic22 b), 0) as6
FROM tb_topic22 a", subquery);
var subqueryList = select.ToList(a => new
{