跳至主要内容

在 SQL 中使用 ORDER BY 关键字

在本教程中,您将学习如何在 SQL 中使用并应用 ORDER BY 关键字。
· 4分钟 阅读

使用 AI 探索

本教程假定您已熟悉 SQL 的基础知识,包括 CRUD 查询(Create、Read、Update 和 Delete)。如果您需要复习 SQL 基础,以下资源可能会有所帮助:

在使用 SQL 进行数据分析时,您需要根据所分析表中一个或多个列的值对结果进行排序。在 SQL 中,这可以通过使用 order by 关键字来完成。本文将通过 PostgreSQL 的实际示例,向您介绍 order by 关键字。上面提供的第二个链接包含对 PostgreSQL 的良好入门介绍;如果您不熟悉 PostgreSQL 的使用,请务必先查看。

我们先在 PostgreSQL 中创建一个名为 countries 的表。该表包含以下列及其数据类型:

  • country_code(字符型)
  • country_name(字符型)
  • continent(字符型)
  • region(字符型)
  • independence_year(整数)
  • local_name(字符型)
  • gov_form(字符型)
  • capital(字符型)

我们快速创建一个实现上述规范的表。使用以下 SQL 查询即可:

CREATE TABLE countries(
 country_code varchar(50) primary key,
 country_name varchar(50),
 continent varchar(50),
 region varchar(50),
 independence_year smallint,
 local_name varchar(50),
 gov_form varchar(50),
 capital varchar(50)
);

为了更好地理解 order by 关键字的全部用法,您需要在 countries 表中准备足够数量的记录。您可以通过导入包含该表数据的 .csv 文件来完成。

将 .csv 文件导入 PostgreSQL 后,对 countries 表运行一条 select 查询,您将看到类似下面的结果:

Select query results

现在您已有一个可用于尝试 order by 关键字的数据库。我们先从下面这条查询开始,它会按照国家名称对国家进行排序。国家名称存储在 country_name 列中。

select * from countries order by country_name;

输出如下:

Order by country name table

默认情况下,order by 会按升序排序。在此示例中,order by 按字母顺序对国家名称进行排序。

我们也可以通过提供 DESC 关键字按降序排序:

select * from countries order by country_name desc;

结果如下所示:

Order by by country_name desc

countries 表包含一列 independence_year。让我们查看在 1850 年到 1900 年之间获得独立的国家的详细信息,并按字母顺序排序:

select * from countries where independence_year >= 1800 and independence_year <= 1900 order by country_name;

结果类似于:

Sort countries that got independence in between 1850 and 1900 table result

现在我们按国家首都的名称降序对各国的详细信息进行排序:

select * from countries order by capital desc;

您将得到:

Order by with respect to the capitals in descending order table result

请注意 capital 列前几个值。它们是空值,从字母顺序来看会出现在最后面。

您还可以在配合 order by 使用时,仅指定特定的列名。

select country_code, country_name, capital from countries order by capital;

结果如下所示:specify particular names in conjugation with order by table result

本教程到此结束。您已经学会如何使用 SQL 中的 order by 关键字对列值进行排序。如果您想进一步强化 SQL 知识,可以查看这门 DataCamp 课程:Joining Data in SQL。

主题