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
299
SELECT *
FROM mytable
ORDER BY
column1 DESC, column2 ASC
125
其他答案缺乏具体的例子,所以在这里:
给出以下 People 表:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Thomas | More | 1478
Thomas | Jefferson | 1826
如果您执行以下查询:
SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC
结果集如下所示:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | More | 1478
Thomas | Jefferson | 1826
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
5 回答
您可以在多个条件下使用多个排序,
其他答案缺乏具体的例子,所以在这里:
给出以下 People 表:
如果您执行以下查询:
结果集如下所示:
多列排序取决于列的相应值:这是我的表示例,其中有两列用Alphabets和Numbers命名,这两列中的值是asc和desc命令 .
现在我通过执行以下命令在这两列中执行 Order By :
现在我再次在这两列中插入新值,其中Alphabet值按ASC顺序排列:
并且Example表中的列看起来像这样 . 现在再次执行相同的操作:
您可以看到第一列中的值是按顺序排列,但第二列不是ASC顺序 .
只要两个或多个行的
column1
字段相等,这首先按column1
(降序)排序,然后按column2
(升序,这是默认值)排序 .