今天遇到了一个需求,数据分为了两部分,一部分按照时间正排,另一部分按照时间倒排。我用的方法就是order by和case when联用(也可以用union,不过语句比较多)。 案例 有以下几条数据: dp为1的按照时间正排,为2的按照时间倒排。 SELECT id,name,time,dp FROM USER ORDER BY dp,//可写可不写,只是按照dp正排 CASE WHEN dp = 1 THEN time END ASC, CASE WHEN dp = 2 THEN time END DESC 最终结果