MergeTable 后面跟花操作OrderBy 多出别名 返回

求助
8 129
该叫什么 Gu! 发布于2周前
悬赏:0 飞吻
MergeTable x 
ORDER BY
	(
	CASE
			
			WHEN ( `Status` = 2 ) THEN
			3 
			WHEN ( `Status` = 3 ) THEN
			4 
			WHEN ((
					`Status` = 1 
					) 
				AND ( `BusType` = 1 )) THEN
				2 ELSE 1 
		END 
	) DESC

  生成的sql。   应该是  MergeTable Order by    然而 MergeTable 后面多了个X

  代码 :

 .MergeTable()
 .OrderBy(x => SqlFunc.IF(x.Status == 2).Return(3)
 .ElseIF(x.Status == 3).Return(4)
 .ElseIF(x.Status == 1 && x.BusType == 1).Return(2)
 .End(1), OrderByType.Desc);

 版本   程序集 SqlSugar, Version=5.0.0.15, Culture=neutral, PublicKeyToken=null

热忱回答8

  • Gu! Gu! VIP0
    2周前

    根据 http://www.donet5.com/Home/Doc?typeId=1187   

    13、二次查询


    0 回复
  • @Gu!:先更新最新试试

    0 回复
  • Gu! Gu! VIP0
    2周前

    @fate stay night: 程序集 SqlSugar, Version=5.0.1.8, Culture=neutral, PublicKeyToken=null

    更新到这个版本  也无法解决

    0 回复
  • Gu! Gu! VIP0
    2周前

    @fate stay night:如果只是简单的 

    OrderBy(t => t.Status)

    就可以。   但是业务需求。没得办法

    0 回复
  • @Gu!:是sqlfunc. if else 这个函数问题 ,你可以把it改成MergeTable先用

    0 回复
  • 下个版本会修复

    0 回复
  • Gu! Gu! VIP0
    2周前

    @fate stay night:最好看一下 MergeTable 后面加select    也可能有这个问题

    0 回复
  • Gu! Gu! VIP0
    2周前

    mergeTable.OrderBy(t => SqlFunc.IIF(t.Status == 2, 3,

                                                     SqlFunc.IIF(t.Status == 3, 4,

                                                     SqlFunc.IIF(t.Status == 1 && t.BusType == 1, 2, 1)

                                                   )))

    改成这样也能用用。。

    0 回复

版块

学习文档

新注册

发布达人

回贴达人