例如,我有一个表,其名称为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查询?
如果您希望所有b内容c按日期排序然后休息,请尝试以下操作:
ORDER BY (CASE WHEN names = 'b' or names = 'c' THEN '1' else '2' END) ASC, dates desc
演示版
如果你想让一切都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)
演示版