sql查询排序但在顶部显示特定值

Ros*_*les 2 sql

例如,我有一个表,其名称为column1,日期为column2。我想查询特定名称将在顶部的位置,并且日期将按降序排序。

|names|dates|
|a    |2016 |
|b    |2013 |
|c    |2017 |
|d    |2011 |
Run Code Online (Sandbox Code Playgroud)

我想显示一个表,其中 b 和 c 将位于顶部,但日期列将按降序排序,其余名称将在日期列排序时显示。这就像有两个组,其中值 b 和 c 的日期已排序,其余的则按另一个排序的日期。例如

|names|dates|
|b    |2017 |
|c    |2013 |
|a    |2016 |
|d    |2011 |
Run Code Online (Sandbox Code Playgroud)

我应该使用什么sql查询?

Rah*_*ain 5

如果您希望所有b内容c按日期排序然后休息,请尝试以下操作:

ORDER BY (CASE WHEN names = 'b' or names = 'c' THEN '1' else '2' END) ASC, dates desc

演示版

http://sqlfiddle.com/#!9/8c6ba6/1

如果你想让一切都b在上面,然后一切c都休息,试试这个:

ORDER BY (CASE WHEN names = 'b' THEN '1' 
WHEN names = 'c' THEN '2' else '3' END) ASC, dates desc
Run Code Online (Sandbox Code Playgroud)

演示版

http://sqlfiddle.com/#!9/8c6ba6/2