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

时间:2018-04-30 05:54:41

标签: sql

例如,我有一个名为column1,date为column2的表。我想查询特定名称将在哪里,日期将按降序排序。

|names|dates|
|a    |2016 |
|b    |2013 |
|c    |2017 |
|d    |2011 |

我想显示一个表格,其中b和c将位于顶部,但是日期列将按照desc顺序排序,其余的名称将显示为日期列的排序。它有两个组,其中值b和c的日期已排序,其余组按其他排序日期排序。例如

|names|dates|
|b    |2017 |
|c    |2013 |
|a    |2016 |
|d    |2011 |

我应该使用什么SQL查询?

1 个答案:

答案 0 :(得分:2)

如果您希望所有bc按日期排序,请暂停,请尝试以下操作:

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

<强>样本

  

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