通过案例陈述订购

时间:2015-08-20 13:17:50

标签: mysql sql-order-by

我想在CASE clausule中使用ORDER BY语句,如下所示:

ORDER BY  
    CASE
        WHEN `Delivery`.`type` = 0 THEN `Delivery`.`quantity` ASC
        WHEN `Delivery`.`type` = 1 THEN `Delivery`.`quantity` DESC
    END

但我只能在ASC之后使用DESC / END个关键字。

有一些解决方案吗?

2 个答案:

答案 0 :(得分:0)

您可以使用以下查询:

SELECT columns FROM tables WHERE condition 
ORDER BY  
CASE    
  WHEN `Delivery`.`type` = 0 THEN `Delivery`.`quantity` ASC,
  WHEN `Delivery`.`type` = 1 THEN `Delivery`.`quantity` DESC
END;

答案 1 :(得分:0)

使用以下链接作为参考,我已将它们放在一起用于您的场景。

MySQL conditional ORDER BY ASC/DESC for date column

ORDER BY 
      CASE WHEN `Delivery`.`type` = 0 THEN `Delivery`.`quantity` END ASC,
      CASE WHEN `Delivery`.`type` = 1 THEN `Delivery`.`quantity` END DESC;