如何在 SQL 中使用 ORDER BY

17 Mar 2025 | 6 分钟阅读

在本 SQL 部分,您将了解 ORDER BY 关键字是什么以及如何在 SQL 中使用它。我们还将讨论如何将 ORDER BY 子句与 WHERE 子句一起使用。

什么是 ORDER BY?

ORDER BY 是 SQL 中的一个子句,用于按升序或降序显示 SELECT 语句的结果集。

此子句始终与结构化查询语言中的 SELECT 查询一起使用。

ORDER BY 子句的语法

我们可以在 ORDER BY 子句中使用多个表字段。我们必须用逗号分隔多个列的名称。

注意:如果您没有在查询中定义升序或降序,SQL 将自动按升序显示结果。

如果您想了解如何在 SQL 表中使用 ORDER BY 子句,您需要遵循以下几点:

  1. 创建一个简单的数据库和表。
  2. 将数据插入表中。
  3. 在没有 ORDER BY 子句的情况下查看插入的数据。
  4. 使用 ORDER BY 子句。

步骤 1:创建简单的数据库和表

首先,您需要在 SQL 中创建一个新的数据库。

以下查询创建了 Hospital 数据库

CREATE Database Hospital;

现在,您需要使用以下 CREATE TABLE 语法创建一个新表

以下查询在 Hospital 数据库中创建了 Patient 表

步骤 2:将数据插入表中

现在,您需要使用以下语法将数据插入表中

以下查询将入院患者的记录插入 Hospital 数据库的 Patient 表中

步骤 3:在没有 ORDER BY 子句的情况下查看表中的插入数据

以下查询以无序方式显示患者记录

上面 SELECT 查询的输出如下所示

Patient_IDPatient_NamePatient_DiseasePatient_AgePatient_City
1035Jones疟疾25果阿
1015Marry糖尿病44孟买
1003Harry发烧29Kochi
1044艾拉癌症40海得拉巴
1025MoriaCorona52加尔各答

步骤 4:使用 ORDER BY 子句

以下查询使用 ORDER BY 子句按 Patient_ID 从最小到最大的顺序显示所有患者记录

上面的 SELECT 和 ORDER BY 查询的输出显示在以下 Patient 表中

Patient_IDPatient_NamePatient_DiseasePatient_AgePatient_City
1003Harry发烧29Kochi
1015Marry糖尿病44孟买
1025MoriaCorona52加尔各答
1035Jones疟疾25果阿
1044艾拉癌症40海得拉巴

以下查询使用 ORDER BY 子句处理 Patient 表的多个列

首先,此查询按 Patient_Name 对患者记录进行排序,如果 Patient_Name 重复多次,则按 Pateint_Age 对这些行进行排序。

输出

How to Use ORDER BY in SQL

ORDER BY ASC

ASC 是与 ORDER BY 子句一起使用的关键字,用于按升序对选定的行进行排序。

ORDER BY ASC 语法

ORDER BY ASC 示例

以下查询在 School 数据库中创建了新的 Department 表。

以下 INSERT INTO 查询将记录插入 Department 表

以下查询显示上表的记录

输出

Department_IDDepartment_NameDepartment_Leader
2211教师Ramesh
2252Somya
2201交通Suresh
2224Office阿曼
2248账户巴努 (Bhanu)
2208安全性Sonu
2221PeonPunit

以下查询显示按 Department_ID 降序排列的 Department 表的选定记录

输出

Department_IDDepartment_NameDepartment_Leader
2201交通Suresh
2208安全性Sonu
2211教师Ramesh
2221PeonPunit
2224Office阿曼
2248账户巴努 (Bhanu)
2252Somya

ORDER BY DESC

DESC 是与 ORDER BY 子句一起使用的关键字,用于按降序对选定的行进行排序,即从高到低。

ORDER BY DESC 语法

ORDER BY DESC 示例

以下查询在 School 数据库中创建了新的 Department 表

以下查询将给定记录插入 Department 表

以下查询显示上表的记录

输出

Department_IDDepartment_NameDepartment_Leader
2211教师Ramesh
2252Somya
2201交通Suresh
2224Office阿曼
2248账户巴努 (Bhanu)
2208安全性Sonu
2221PeonPunit

以下查询显示按 Department_ID 降序排列的 Department 表的选定记录

输出

Department_IDDepartment_NameDepartment_Leader
2252Somya
2248账户巴努 (Bhanu)
2224Office阿曼
2221PeonPunit
2211教师Ramesh
2208安全性Sonu
2201交通Suresh

ORDER BY 与 WHERE 子句

ORDER BY 关键字也可以在结构化查询语言的 SELECT 查询中与 WHERE 子句一起使用。

ORDER BY 与 WHERE 子句的语法

ORDER BY 与 WHERE 子句的示例

以下查询在 Hospital 数据库中创建了 Patient_Details 表

以下查询将入院患者的记录插入 Hospital 数据库的 Patient_Details 表中

以下查询以无序方式显示 Patient_Details 的记录

上面 SELECT 查询的输出如下所示

Patient_IDPatient_NamePatient_DiseasePatient_AgePatient_City
1035Jones疟疾25果阿
1015Marry糖尿病44孟买
1003Harry发烧29Kochi
1044艾拉癌症40海得拉巴
1025MoriaCorona52加尔各答

以下查询以排序方式显示 Patient_ID 大于 1020 的患者记录

Patient_IDPatient_NamePatient_DiseasePatient_AgePatient_City
1025MoriaCorona52加尔各答
1035Jones疟疾25果阿
1044艾拉癌症40海得拉巴

下一个主题SQL 中的触发器