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

sql查询排序,但在顶部显示特定值,sql,Sql,例如,我有一个名为column1、日期为column2的表。我想查询具体的名字在哪里,日期按降序排列 |names|dates| |a |2016 | |b |2013 | |c |2017 | |d |2011 | 我想显示一个表,其中b和c将位于顶部,但dates列将按desc顺序排序,其余名称将在dates列排序时显示。这就像有两个组,其中值b和c的日期排序,其余的日期排序。比如说 |names|dates| |b |2017 | |c |2013 |

例如,我有一个名为column1、日期为column2的表。我想查询具体的名字在哪里,日期按降序排列

|names|dates|
|a    |2016 |
|b    |2013 |
|c    |2017 |
|d    |2011 |
我想显示一个表,其中b和c将位于顶部,但dates列将按desc顺序排序,其余名称将在dates列排序时显示。这就像有两个组,其中值b和c的日期排序,其余的日期排序。比如说

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

我应该使用什么样的sql查询?

如果您希望所有的
b
c
都按日期排序,然后按其他日期排序,请尝试以下操作:

ORDER BY (CASE WHEN names = 'b' THEN '1' 
WHEN names = 'c' THEN '2' else '3' END) ASC, dates desc
orderby(当名称='b'或名称='c'然后是'1'或'2'结束时的大小写)ASC,dates desc

演示


如果要将所有
b
放在顶部,然后将所有
c
放在其余位置,请尝试以下操作:

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


你试过什么了吗?试着在你的ORDERBY子句中使用大小写表达式。例如,我试过“case when”,但如果你只关注一列,这是很好的,在这种情况下,有两列得到了关注。我到处都找过了。我搞不好,为什么?我应该在顶部显示所有需要的值。我已经更新了查询。试着让我知道它是否有效。已添加
ASC
案例订购,有效先生,谢谢。我只是用了你的第一个例子,因为这是我唯一需要的。谢谢。很乐意帮忙。:)