📜  PostgreSQL – ORDER BY 子句

📅  最后修改于: 2022-05-13 01:57:14.451000             🧑  作者: Mango

PostgreSQL – ORDER BY 子句

PostgreSQL ORDER BY 子句用于对 SELECT 语句返回的结果查询集进行排序。由于 SELECT 语句返回的查询集没有特定的顺序,因此可以使用 SELECT 语句中的 ORDER BY 子句以所需的方式对结果进行排序。

我们来分析一下上面的语法:

  • 首先,我们指定要排序的列或表达式。如果要在 SELECT 语句中使用多个列或表达式,我们用逗号分隔它们。
  • 其次,ASC表达式用于对结果集进行升序排序,DESC表达式用于对结果集进行降序排序。默认情况下,ORDER BY 子句使用 ASC。

在本文中,我们将使用示例 DVD 租赁数据库,此处进行了说明,可以通过单击示例中的此链接进行下载。

示例 1:

使用 PostgreSQL ORDER BY 子句在示例数据库的“客户”表中按一列对行进行排序

SELECT
    first_name,
    last_name
FROM
    customer
ORDER BY
    first_name DESC;

输出:



示例 2:
使用 PostgreSQL ORDER BY 子句按“customer”表中的多列对行进行排序。这里我们将先按名字升序对客户进行排序,然后按姓氏降序对排序后的结果集进行排序。

SELECT
    first_name,
    last_name
FROM
    customer
ORDER BY
    first_name ASC,
    last_name DESC;

输出:

如果客户的名字与下图相同,则代码的输出会更加清晰:

示例 3:
使用 PostgreSQL ORDER BY 子句按表达式对行进行排序。在下面的示例中,我们将使用 ORDER BY 子句和LENGTH()函数按客户名字的长度对行进行排序。 LENGTH()函数接受一个字符串并返回其长度。

SELECT 
    first_name,
    LENGTH(first_name) len
FROM
    customer
ORDER BY 
    LENGTH(first_name) DESC;

输出: