【问题标题】:Multiple ordering on same column with different condition在不同条件下对同一列进行多次排序
【发布时间】:2017-01-16 01:42:17
【问题描述】:

我想代表其他列条件以不同的顺序对我的列进行排序。

有一个表格是这样的:

ID    Date         Status
--------------------------
1  - 16-JUL-2015  - 1
2  - 15-JUL-2015  - 1
3  - 11-JUL-2015  - 0
4  - 12-JUL-2015  - 0

如果状态为 1,则按日期 ASC 排序,状态为 0 按日期 DESC 排序

寻找以下结果

15-JUL-2015
16-JUL-2015
12-JUL-2015
11-JUL-2015

任何方式订购。到处都找不到

谢谢

【问题讨论】:

标签: mysql


【解决方案1】:

您可以使用以下查询:

SELECT *
FROM mytable
ORDER BY Status DESC,
         CASE 
            WHEN Status = 1 THEN DATEDIFF(Date, '1900-01-01')
            ELSE DATEDIFF('1900-01-01', Date) 
         END

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    相关资源
    最近更新 更多