如果有一个像下面这样的表:
id title
1 a
2 b
3 c
4 d
我想知道是否有一种方法可以通过首先选择id小于3的行按id降序排序来选择顺序中的行,而不是按id降序选择其余的行,所以在这种情况下,行2,1,4,3。我想知道是否有类似这样的sql语句:
SELECT * FROM tablename ORDERY BY id<'3' id DESC, id DESC
答案 0 :(得分:3)
您可以在order by
中使用多个表达式:
order by id < 3 desc,
id desc
这与你的表达很接近,但你还有一个额外的id
。
答案 1 :(得分:0)
它会像戈登的回答一样。但我认为这对理解更有意义。
ORDER BY CASE id < 3 THEN 1, ELSE 0 END DESC,
id DESC