sql server 年分表查询SqlFunc.IF问题 返回
SqlSugar
老数据
2
1186
悬赏:5 飞吻
异常情况SqlFunc.IF
await _servicesTest.AsQueryable().Where(it => it.Name == name).SplitTable(beginTime, endTime) .SumAsync(it => SqlFunc.IF(it.Name == "fei").Return(10).End(it.Rate));
异常SQL
SELECT SUM( ( CASE WHEN ( [Name] = N'fei' ) THEN N'10' ELSE [Rate] END )=1 ) FROM (SELECT [GID],[Name],[Type],[Rate],[CreateTime] FROM [SplitTestTable_20230101] WHERE ( [Name] = N's' ) AND [CreateTime]>='2023-01-01 00:00:00.000' AND [CreateTime]<= '2023-03-01 00:00:00.000') it
正常情况SqlFunc.IIF
await _servicesTest.AsQueryable().Where(it => it.Name == name).SplitTable(beginTime, endTime) .SumAsync(it => SqlFunc.IIF(it.Name=="fei",10,it.Rate));
对应SQL
SELECT SUM(( CASE WHEN ( [Name] = N'fei' ) THEN 10 ELSE [Rate] END )) FROM (SELECT [GID],[Name],[Type],[Rate],[CreateTime] FROM [SplitTestTable_20230101] WHERE ( [Name] = N's' ) AND [CreateTime]>='2023-01-01 00:00:00.000' AND [CreateTime]<= '2023-03-01 00:00:00.000' ) unionTable
SqlFunc.IF 转义时,多了点东西=1,不使用分表结构时转义正常。
sugar版本:5.1.3.50
sqlserver:2014
热忱回答(2)
-
fate sta VIP0
2023/2/17我这边看一下
0 回复 -
fate sta VIP0
2023/2/19.Sum(it=> it.Name=="a"?1:2); 你先这么用,下个版本修复
0 回复