【问题标题】:Mysql - multiple Order By options in CASE WHENMysql - CASE WHEN中的多个Order By选项
【发布时间】:2018-06-26 19:26:07
【问题描述】:

我正在从 SQL 中的表中提取结果,以在我们的预约订购系统中生成一个“下一步”按钮链接。 SELECT 语句有效,但我想对 order by 执行类似的操作,以考虑两个约会在完全相同的时间和日期发生的情况:

ORDER BY
     CASE Order.date
          WHEN currentDate THEN (Order.id ASC, Order.Date ASC)
          ELSE (Order.Date ASC, Order.id ASC)
          END

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以写成

    ORDER BY
         CASE WHEN Order.date = current_date() THEN 0 ELSE 1 END ASC,
         Order.Date ASC, 
         Order.id ASC
    

    它将首先对 Order.date 今天所在的行进行排序,然后按日期升序排序,对于相同的日期,它将按 id 升序对行进行排序

    【讨论】:

      猜你喜欢
      • 2019-03-27
      • 2023-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 2014-05-15
      • 1970-01-01
      相关资源
      最近更新 更多