diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 20e648e6..38f8de9d 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -559,14 +559,5 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs
index 1d538461..37261cdd 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/Curd/GBaseSelectTest.cs
@@ -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
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs
index c499d3ba..78454478 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs
@@ -1070,8 +1070,8 @@ limit 0,10", t1);
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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT sum(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1087,8 +1087,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT min(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1104,8 +1104,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT max(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1121,8 +1121,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT avg(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs
index 9c9e6c52..5e7d29e5 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -864,8 +864,8 @@ ORDER BY dbms_random.value) t WHERE ROWNUM < 11", t1);
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
{
@@ -881,8 +881,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
{
@@ -898,8 +898,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
{
@@ -915,8 +915,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
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs
index e83eb917..5769d1ba 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -829,8 +829,8 @@ namespace FreeSql.Tests.Odbc.Default
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, isnull((SELECT sum(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -846,8 +846,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, isnull((SELECT min(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -863,8 +863,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, isnull((SELECT max(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -880,8 +880,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, isnull((SELECT avg(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs
index 1750d697..e0499fe2 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -830,8 +830,8 @@ limit 10", t1);
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, coalesce((SELECT sum(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -847,8 +847,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, coalesce((SELECT min(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -864,8 +864,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, coalesce((SELECT max(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -881,8 +881,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, coalesce((SELECT avg(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs
index 3e6cd9b9..443742d0 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@@ -950,8 +950,8 @@ limit 0,10", t1);
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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT sum(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -967,8 +967,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT min(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -984,8 +984,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT max(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1001,8 +1001,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT avg(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs
index 75f2e3e3..e5dec223 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -865,8 +865,8 @@ ORDER BY dbms_random.value) t WHERE ROWNUM < 11", t1);
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
{
@@ -882,8 +882,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
{
@@ -899,8 +899,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
{
@@ -916,13 +916,13 @@ 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
+ var subqueryList = select.Limit(10).ToList(a => new
{
all = a,
- count = select.As("b").Avg(b => b.Id)
+ count = select.As("b").Limit(10).Avg(b => b.Id)
});
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs
index a3c6b50c..85584f3b 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -926,8 +926,8 @@ limit 10", t1);
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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT sum(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -943,8 +943,8 @@ FROM ""tb_topic"" 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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT min(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -960,8 +960,8 @@ FROM ""tb_topic"" 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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT max(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -977,8 +977,8 @@ FROM ""tb_topic"" 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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT avg(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs
index c539a808..157539af 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs
@@ -820,8 +820,8 @@ ORDER BY newid()", t1);
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, isnull((SELECT sum(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -837,8 +837,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, isnull((SELECT min(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -854,8 +854,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, isnull((SELECT max(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -871,8 +871,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, isnull((SELECT avg(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs
index 15ac7fcc..ad048023 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/Sqlite/Curd/SqliteSelectTest.cs
@@ -871,8 +871,8 @@ limit 0,10", t1);
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, ifnull((SELECT sum(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -888,8 +888,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, ifnull((SELECT min(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -905,8 +905,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, ifnull((SELECT max(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -922,8 +922,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, ifnull((SELECT avg(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs
index f384588e..af707310 100644
--- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs
@@ -997,8 +997,8 @@ ORDER BY dbms_random.value) t WHERE ROWNUM < 11", t1);
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
{
@@ -1014,8 +1014,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
{
@@ -1031,8 +1031,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
{
@@ -1048,8 +1048,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
{
diff --git a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs
index 63ca8372..c95cf88e 100644
--- a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdSelectTest.cs
@@ -980,8 +980,8 @@ ORDER BY rand()", t1);
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, coalesce((SELECT sum(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -997,8 +997,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, coalesce((SELECT min(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1014,8 +1014,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, coalesce((SELECT max(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1031,8 +1031,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, coalesce((SELECT avg(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs
index 58e797a0..04dfaf18 100644
--- a/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/KingbaseES/Curd/KingbaseESSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -830,9 +830,8 @@ limit 10", t1);
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
- limit 1) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT sum(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -848,9 +847,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
- limit 1) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT min(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -866,9 +864,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
- limit 1) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT max(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -884,9 +881,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
- limit 1) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT avg(b.""ID"")
+ FROM ""TB_TOPIC22"" b), 0) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs
index 3c54d207..123b965d 100644
--- a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs
@@ -945,8 +945,9 @@ WHERE (((a.[Name]) in (SELECT s.[Title] as as1
all = a,
count = (long)select.As("b").Sum(b => b.Id)
});
- Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT sum(b.[Id])
- FROM [tb_topic22] b) as as6
+ Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, iif(isnull((SELECT sum(b.[Id])
+ FROM [tb_topic22] b)), 0, (SELECT sum(b.[Id])
+ FROM [tb_topic22] b)) as as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -962,8 +963,9 @@ FROM [tb_topic22] a", subquery);
all = a,
count = select.As("b").Min(b => b.Id)
});
- Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT min(b.[Id])
- FROM [tb_topic22] b) as as6
+ Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, iif(isnull((SELECT min(b.[Id])
+ FROM [tb_topic22] b)), 0, (SELECT min(b.[Id])
+ FROM [tb_topic22] b)) as as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -979,8 +981,9 @@ FROM [tb_topic22] a", subquery);
all = a,
count = select.As("b").Max(b => b.Id)
});
- Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT max(b.[Id])
- FROM [tb_topic22] b) as as6
+ Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, iif(isnull((SELECT max(b.[Id])
+ FROM [tb_topic22] b)), 0, (SELECT max(b.[Id])
+ FROM [tb_topic22] b)) as as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -996,8 +999,9 @@ FROM [tb_topic22] a", subquery);
all = a,
count = select.As("b").Avg(b => b.Id)
});
- Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT avg(b.[Id])
- FROM [tb_topic22] b) as as6
+ Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, iif(isnull((SELECT avg(b.[Id])
+ FROM [tb_topic22] b)), 0, (SELECT avg(b.[Id])
+ FROM [tb_topic22] b)) as as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs
index b5443e37..d7887030 100644
--- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs
@@ -1133,8 +1133,8 @@ limit 0,10", t1);
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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT sum(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1150,8 +1150,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT min(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1167,8 +1167,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT max(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1184,8 +1184,8 @@ FROM `tb_topic` 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_topic` b) as6
+ Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, ifnull((SELECT avg(b.`Id`)
+ FROM `tb_topic` b), 0) as6
FROM `tb_topic` a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs
index 6169e7b6..279e38fd 100644
--- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs
@@ -984,8 +984,8 @@ ORDER BY dbms_random.value) t WHERE ROWNUM < 11", t1);
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
{
@@ -1001,8 +1001,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
{
@@ -1018,8 +1018,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
{
@@ -1035,8 +1035,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.Limit(10).ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs
index 341fe856..18d8208a 100644
--- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs
@@ -1074,8 +1074,8 @@ limit 10", t1);
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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT sum(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1091,8 +1091,8 @@ FROM ""tb_topic"" 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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT min(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1108,8 +1108,8 @@ FROM ""tb_topic"" 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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT max(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1125,8 +1125,8 @@ FROM ""tb_topic"" 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_topic"" b) as6
+ Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, coalesce((SELECT avg(b.""id"")
+ FROM ""tb_topic"" b), 0) as6
FROM ""tb_topic"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs
index c199031a..fe432b60 100644
--- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs
@@ -1,4 +1,4 @@
-using FreeSql.DataAnnotations;
+using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -944,8 +944,8 @@ limit 10", t1);
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_TOPIC"" b) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT sum(b.""ID"")
+ FROM ""TB_TOPIC"" b), 0) as6
FROM ""TB_TOPIC"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -961,8 +961,8 @@ FROM ""TB_TOPIC"" 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_TOPIC"" b) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT min(b.""ID"")
+ FROM ""TB_TOPIC"" b), 0) as6
FROM ""TB_TOPIC"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -978,8 +978,8 @@ FROM ""TB_TOPIC"" 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_TOPIC"" b) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT max(b.""ID"")
+ FROM ""TB_TOPIC"" b), 0) as6
FROM ""TB_TOPIC"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -995,8 +995,8 @@ FROM ""TB_TOPIC"" 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_TOPIC"" b) as6
+ Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, coalesce((SELECT avg(b.""ID"")
+ FROM ""TB_TOPIC"" b), 0) as6
FROM ""TB_TOPIC"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs
index cbe5c814..1928d412 100644
--- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs
@@ -981,8 +981,8 @@ ORDER BY newid()", t1);
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, isnull((SELECT sum(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -998,8 +998,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, isnull((SELECT min(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1015,8 +1015,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, isnull((SELECT max(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1032,8 +1032,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, isnull((SELECT avg(b.[Id])
+ FROM [tb_topic22] b), 0) as6
FROM [tb_topic22] a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs
index a9b3f59b..81f463e9 100644
--- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs
@@ -1003,8 +1003,8 @@ limit 0,10", t1);
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, ifnull((SELECT sum(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1020,8 +1020,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, ifnull((SELECT min(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1037,8 +1037,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, ifnull((SELECT max(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
@@ -1054,8 +1054,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, ifnull((SELECT avg(b.""Id"")
+ FROM ""tb_topic22"" b), 0) as6
FROM ""tb_topic22"" a", subquery);
var subqueryList = select.ToList(a => new
{
diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs
index de8540d9..690cd66d 100644
--- a/FreeSql/Internal/CommonExpression.cs
+++ b/FreeSql/Internal/CommonExpression.cs
@@ -1264,7 +1264,7 @@ namespace FreeSql.Internal
var sql4 = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { $"{exp3.Method.Name.ToLower()}({fieldSql})" })?.ToString();
asSelectBefores.Clear();
- return $"({sql4.Replace(" \r\n", " \r\n ")})";
+ return _common.IsNull($"({sql4.Replace(" \r\n", " \r\n ")})", 0);
}
var sql3 = manySubSelectAggMethod.Invoke(fsql, new object[] { exp3Args0, FieldAliasOptions.AsProperty }) as string;
@@ -1319,7 +1319,7 @@ namespace FreeSql.Internal
exp3Args0 = new ReplaceHzyTupleToMultiParam().Modify(exp3Args0, fsqltables);
var sqlSum = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { $"{exp3.Method.Name.ToLower()}({ExpressionLambdaToSql(exp3Args0, tscClone1)})" })?.ToString();
if (string.IsNullOrEmpty(sqlSum) == false)
- return $"({sqlSum.Replace(" \r\n", " \r\n ")})";
+ return _common.IsNull($"({sqlSum.Replace(" \r\n", " \r\n ")})", 0);
break;
case "ToList":
case "ToOne":
@@ -2124,7 +2124,7 @@ namespace FreeSql.Internal
commonExp.ReadAnonymousField(select._tables, field, map, ref index, callExp.Arguments[1], null, null, null, null, false);
var fieldSql = field.Length > 0 ? field.Remove(0, 2).ToString() : null;
- e.Result = $"({select.ToSql($"{aggregateMethodName}({fieldSql})").Replace(" \r\n", " \r\n ")})";
+ e.Result = commonExp._common.IsNull($"({select.ToSql($"{aggregateMethodName}({fieldSql})").Replace(" \r\n", " \r\n ")})", 0);
return;
}
throw throwCallExp($"不支持 {callExp.Arguments.Count}个参数的方法");