[英]multiple sort order on same field
請考慮以下示例:
+---------+------------+
| value | name |
+---------+------------+
| 42 | abresas |
| 0 | dionyziz |
| 6 | dionyziz2 |
| 0 | izual |
| 8 | kokos |
| 37 | kostis90gr |
| 0 | test |
| 35 | usertest |
+---------+------------+
我想按值的升序排序,但我希望所有值為0的名稱顯示在底部。 因此排序順序應為:6,8,35,37,42,0,0,0
有沒有想過是否可以使用sql?
當然。 使用IF功能 :
ORDER BY IF(value=0,1,0), value
是的,您只需要調整order by子句:
order by (case when value = 0 then 999999 else value end)
是一種方法,假設有一個最大值。 另一種更通用的方法是:
order by (case when value = 0 then 1 else 0 end), value
您可以使用UNION關鍵字組合兩個不同查詢的結果,如下所示:
(select * from tableName where value>0 order by value)
union
(select * from tableName where value=0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.