1
讓我解釋一下:我需要按升序對列表進行排序,而結果在結尾處保留小於零。如何訂購結果中某些值等於零的結果,而其他結果是否上升?
例子:
**Field**
2
5
15
19
0
-5
-19
我認爲我可以加入使用UNION兩個查詢結果,但我想只使用一個做的,這可能嗎?
任何回答告訴如何訂購thay的方式將不勝感激。
讓我解釋一下:我需要按升序對列表進行排序,而結果在結尾處保留小於零。如何訂購結果中某些值等於零的結果,而其他結果是否上升?
例子:
**Field**
2
5
15
19
0
-5
-19
我認爲我可以加入使用UNION兩個查詢結果,但我想只使用一個做的,這可能嗎?
任何回答告訴如何訂購thay的方式將不勝感激。
使用下面的命令通過在你的正常查詢結束(沒有工會)
order by (case when field>0 then 0 else 1 end), field
或者,如果你的數據庫系統的SQL風味支持整數布爾值的隱式轉換:
order by (field <= 0), field
燦你解釋我是什麼意思,在一個命令中的0和1?順便說一下,在使用MySql中。 –
@MarceloAssis - ORDER BY首先按CASE表達式的結果排序,然後按字段值排序。 0和1的值沒有什麼特別之處。只要分配給正值字段值的值在分配給非正值字段值的值之前排序,就可以使用任何值。 – dbenham