假设我有一个food查询的表SELECT name FROM food ORDER BY name:
| name
|--------
| Apple
| Banana
| Carrot
| Donut
...
Run Code Online (Sandbox Code Playgroud)
我希望指定我选择的特定项目(如果在表中)固定在顶部(例如,“柠檬”然后是“胡萝卜”)。像这样:
| name
| -------
| Lemon
| Carrot
| Apple
| Banana
| Donut
...
Run Code Online (Sandbox Code Playgroud)
我可以使用哪种SQL查询来进行这种特定排序?
Dan*_*nez 10
您可以在order by子句中使用case语句来对具有特定名称的项目进行优先级排序。
下面将通过为案例分配所有值分别为1和2的值来将Lemon和Carrot置于优先级顺序,所有其他情况都将得到值3。剩下的那些被分配为3的值将按以下顺序由第二个表达式排序子句,它只是名称列。
SELECT *
FROM food
ORDER BY
CASE name
WHEN 'Lemon' THEN 1
WHEN 'Carrot' THEN 2
ELSE 3
END,
name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |