order 根据不同条件排序

时间:2021-07-20 02:45:18

项目中有一个这样需要按不同条件进行分类排序的需求,百度了半天,最后想了一种写法

order 根据不同条件排序order 根据不同条件排序

(白色部分正序,灰色部分倒序)

这是用到union All SELECT *   FROM (SELECT *           FROM (SELECT openflag,                        opennumber,                        objid,                        productid,                        openstatu,                        end_date,                        start_date                   FROM plm_productopenperiod                  WHERE openflag = 1                  ORDER BY start_date ASC)         UNION ALL         SELECT *           FROM (SELECT openflag,                        opennumber,                        objid,                        productid,                        openstatu,                        end_date,                        start_date                   FROM plm_productopenperiod                  WHERE openflag = 0                  ORDER BY start_date DESC))