Ign*_*ams 962
ORDER BY column1 DESC, column2
Run Code Online (Sandbox Code Playgroud)
当两个或多个行的字段相等时,这将column1首先按(降序)排序,然后按column2(升序,这是默认值)排序column1.
Tho*_*ena 332
其他答案缺乏一个具体的例子,所以在这里:
给出以下People表:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Thomas | More | 1478
Thomas | Jefferson | 1826
Run Code Online (Sandbox Code Playgroud)
如果您执行以下查询:
SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC
Run Code Online (Sandbox Code Playgroud)
结果集如下所示:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | More | 1478
Thomas | Jefferson | 1826
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Run Code Online (Sandbox Code Playgroud)
Qua*_*noi 133
SELECT *
FROM mytable
ORDER BY
column1 DESC, column2 ASC
Run Code Online (Sandbox Code Playgroud)
Jas*_*ark 16
多列排序取决于列的相应值:这是我的表示例,其中有两列用Alphabets和Numbers命名,这两列中的值是asc和desc命令.
现在我通过执行以下命令在这两列中执行Order By:
现在我再次在这两列中插入新值,其中Alphabet值按ASC顺序排列:
并且Example表中的列看起来像这样.现在再次执行相同的操作:
您可以看到第一列中的值是按顺序排列,但第二列不是ASC顺序.
ati*_*ker 10
您可以在多个条件下使用多个排序,
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
Run Code Online (Sandbox Code Playgroud)
SELECT id, \n first_name,\n last_name,\n salary\nFROM employee\nORDER BY salary DESC, last_name; \nRun Code Online (Sandbox Code Playgroud)\n如果您想从表中选择记录,但希望看到它们根据两列排序,则可以使用 ORDER BY 来实现。该子句出现在 SQL 查询的末尾。
\n在 ORDER BY 关键字之后,添加您\xe2\x80\x99d 首先要用来对记录进行排序的列的名称(在我们的示例中为工资)。然后,在逗号后添加第二列(在我们的示例中为last_name)。您可以单独修改每列的排序顺序(升序或降序)。如果想使用升序(从低到高)排序,可以使用ASC关键字;不过,此关键字是可选的,因为这是未指定时的默认顺序。如果要使用降序,请将 DESC 关键字放在相应的列后面(在示例中,我们对工资列使用降序)。
\n小智 6
尝试
'select * FROM users ORDER BY id DESC, name ASC, age DESC
Run Code Online (Sandbox Code Playgroud)