【发布时间】:2019-12-23 16:40:28
【问题描述】:
select *
from myaccount .....
order by t.Status, t.OpenDate, r.RegDate
在这种情况下,它是按这三个状态排序的,但我想将结果与状态分开
when status = 0
order by t.OpenDate,r.RegDate
如果其他状态,与按状态排序的原始语句不同,我想混合状态并且仅按 t.OpenDate,r.RegDate 排序
如何使用条件语句来做到这一点?我仍然在尝试这个,但我只能在一个条件下找到方法。
【问题讨论】:
-
样本数据和期望的结果会有很大帮助。
-
对于
status的所有值,您的两个排序标准都是相同的。请澄清您的问题。 -
添加一些示例数据,这个问题在没有上下文的情况下有点令人困惑。您可能希望对日期使用 where 子句。如............ WHERE t.OpenDate >= r.regdate。另外,由于别名不同,您必须加入表,您能否提供完整的查询...非常感谢
-
也许看看 CTE?正如戈登所说。没有链接数据很难看到。试试sqlfiddle.com
-
所以
status = 0的行应该排在第一位,不管opendate和regdate,然后所有status <> 0的行都应该排在前面,按opendate排序,然后是regdate?
标签: mysql sql sql-order-by