我試圖按SQL中不一樣方向的多個列進行排序。 column1
將按降序排序,而column2
將按升序排序。 spa
我怎樣才能作到這一點? code
ORDER BY column1 DESC, column2
每當兩行或更多行的column1
字段相等時,這將首先按column1
(降序)對全部內容進行排序,而後按column2
(升序,這是默認設置)對全部內容進行排序。 排序
SELECT * FROM mytable ORDER BY column1 DESC, column2 ASC
其餘答案缺乏一個具體的示例,所以請按如下步驟進行: 圖片
給定如下人員表: get
FirstName | LastName | YearOfBirth ---------------------------------------- Thomas | Alva Edison | 1847 Benjamin | Franklin | 1706 Thomas | More | 1478 Thomas | Jefferson | 1826
若是執行如下查詢: io
SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC
結果集將以下所示: table
FirstName | LastName | YearOfBirth ---------------------------------------- Thomas | More | 1478 Thomas | Jefferson | 1826 Thomas | Alva Edison | 1847 Benjamin | Franklin | 1706
多列排序取決於兩列的相應值:這是個人表格示例,其中兩列以字母和數字命名,這兩列中的值分別爲asc和desc順序。 ast
如今,我經過執行如下命令在這兩列中執行「 訂購依據」: bug
如今再次在這兩列中插入新值,其中字母值按ASC順序排列: im
而且「示例」表中的列以下所示。 如今再次執行相同的操做:
您能夠看到第一列中的值按desc順序排列,而第二列中的值按ASC順序排列。
您能夠在多種條件下使用多種順序,
ORDER BY (CASE WHEN @AlphabetBy = 2 THEN [Drug Name] END) ASC, CASE WHEN @TopBy = 1 THEN [Rx Count] WHEN @TopBy = 2 THEN [Cost] WHEN @TopBy = 3 THEN [Revenue] END DESC