Nol*_*pez 0 sql sorting sql-order-by
我试图找到解决方案,我可能做错了研究,这就是为什么我需要你的帮助:(
有6种不同的类别,具有不同的值.我想选择所有这些,但是在2个不同的组中排序:第一个包含1到3之间的所有组,按另一个值排序.始终在同一个请求中,我想显示4到6之间的类别,按另一个值排序.
更好的方法是告诉你之前和之后,我想要的是:
之前
|Category | name |
| 1 | Barney |
| 6 | Ted |
| 6 | Anita |
| 3 | Jessica |
| 2 | Marshall |
| 3 | Lily |
| 4 | Robin |
| 2 | Bryan |
| 5 | Oliver |
Run Code Online (Sandbox Code Playgroud)
后
|Category | name | ----- Alphabetic sort
| 1 | Barney |
| 2 | Bryan |
| 3 | Jessica |
| 3 | Lily |
| 2 | Marshall |
---------------------------Imaginary line which seperate 2 groups : category 1 2 3 and 4 5 6
| 6 | Anita |
| 5 | Oliver |
| 4 | Robin |
| 6 | Ted |
Run Code Online (Sandbox Code Playgroud)
我希望你明白我的意思!
谢谢您的帮助 !
试试这个:
ORDER BY CASE
WHEN category IN (1, 2, 3) THEN 1
WHEN category IN (4, 5, 6) THEN 2
ELSE 3
END,
name
Run Code Online (Sandbox Code Playgroud)
该查询使用CASE表达式以组一起category子集:子集1,2,3被分配的值1,并因此具有最大优先级.子集 4,5,6被赋予的价值2,而类别其余获得最低的优先级,即值3.