代码之家  ›  专栏  ›  技术社区  ›  mana

使用重复值按大小写排序

  •  0
  • mana  · 技术社区  · 6 年前

    我有一个数据库表“tbl_matches”

      NAME     START_DATE         STATUS
      John     2018-08-1 08:30    Prematch
      Paul     2018-08-1 05:30    Prematch
      Sam      2018-08-1 05:30    Prematch
      Mel      2018-08-1 05:30    Live
    

    这是我的问题

    SELECT * FROM tbl_matches
    ORDER BY CASE WHEN STATUS = 'Live' THEN true ELSE NULL DESC
    

    我要的是移动“梅尔”记录 保罗之上 ,就在保罗和约翰之间,因为梅尔的身份 活的 而且它还有 相同的日期和时间 和保罗和山姆在一起。

    逻辑应该是:如果状态是“Live”,那么将记录移动到其他记录之上的“日期和时间”相同。

    2 回复  |  直到 4 年前
        1
  •  2
  •   akshay    6 年前

    尝试:

    SELECT * FROM tbl_matches
    ORDER BY START_DATE, CASE WHEN STATUS ='Live' THEN '0' ELSE '1' END;
    

    CASE 将赋值 0 哪里 Status 活的 否则它将分配 1 . 那么 ORDER BY Ascending 默认订购

        2
  •  2
  •   Zaynul Abadin Tuhin    6 年前

    case when 对于status列,并将开始日期也放在order by子句中

    SELECT * FROM tbl_matches    
    order by START_DATE,case when status ='Live' then 0 else 1 end