PostgreSQL Order by 子句17 Mar 2025 | 6 分钟阅读 在本节中,我们将学习 PostgreSQL ORDER BY 条件,该条件用于按升序或降序对数据进行排序。并且记录是根据一个或多个列提取的。 从表中提取记录时,SELECT 命令以不确定的顺序返回行。为此,我们将在 SELECT 语句中使用 ORDER BY 子句对结果集的行进行排序。 ORDER BY 子句允许我们根据排序表达式按升序或降序对 SELECT 条件返回的行进行排序。 PostgreSQL Order by 子句的语法PostgreSQL ORDER BY 条件的语法如下 以下是用于上述命令的参数
order by 子句以下列格式工作 它从 From 子句 → 开始,之后它将选择特定的列 → 然后执行 Order by 子句。 ![]() 注意:在 ORDER BY 子句中,我们可以在 SELECT 命令中使用列别名,因为排序评估。PostgreSQL ORDER BY 子句的示例在这里,我们将通过以下示例了解 PostgreSQL ORDER BY 子句的工作原理 为此,我们将使用在 PostgreSQL 教程的前面部分创建的 Employee 表。 以下屏幕截图定义了 Employee 表中存在的不同列 ![]() 在上面的表中,我们将使用 order by 子句执行不同类型的运算符。
在下面的示例中,我们将使用 ORDER BY 条件按员工的 first_name 按升序获取员工 输出 执行上述命令后,我们将获得以下输出,该输出按升序提取所有 first_name。 ![]() 我们也可以在 ORDER BY 子句中忽略 ASC 选项,因为 ASC 选项是默认的,正如我们在下面的命令中看到的那样 输出 正如我们在下面的屏幕截图中看到的那样,我们得到了与上面类似的输出 ![]() 使用 PostgreSQL ORDER BY 子句按降序对行进行排序以下命令从 Employee 表中选择 first _name 和 last _name,并按 降序对 last_name 列中的值获取行 输出 执行上述命令后,我们将获得以下输出,该输出按降序提取所有 first_name。 ![]() 使用 PostgreSQL ORDER BY 子句按多列对行进行排序以下命令用于从 employee 表中选择 first_name 和 last_name,并按多列对行进行排序 输出 执行上述命令后,ORDER BY 子句首先按 first_name 列中的值提取行。然后它按 last_name 列中的值提取行。 在下图中,我们还可以看到有两个员工的 first_name (john) 相同,并且 last_name 按降序排序。 ![]() 使用 PostgreSQL ORDER BY 子句按表达式排序行在下面的示例中,我们将选择地址及其长度,该地址按 employee 表中地址的长度获取行 注意:在 PostgreSQL 中,列别名 len 是可访问的,并在 ORDER BY 子句中使用,因为 ORDER BY 子句是在 SELECT 条件之后完成的。并且使用 LENGTH() 函数来获取字符串并获取特定字符串的长度。 输出 执行上述命令后,我们将获得以下结果,该结果描述了 employee 表中 address 列的长度值。 ![]() PostgreSQL ORDER BY 条件和 NULL当我们提取具有 NULL 值的行时,我们可以使用 ORDER BY 子句的更多 LAST 选项来定义 NULL 的顺序。 在数据库中,NULL 是一种表示,定义了记录丢失或未在记录时未指定。 在上面的语法中,我们有两个选项,它们是最重要的使用选项
为了更好地理解,我们将创建一个表,如下所示 执行上述命令后,我们将获得以下消息窗口; demo 表已成功创建。 ![]() 创建表后,我们将按如下方式在 demo 表中插入一些值 输出 执行上述命令后,我们将获得以下消息窗口; 值已成功插入到 demo 表中。 ![]() 注意:在这里,我们不需要理解 CREATE TABLE 和 INSERT 命令,因为我们希望在 pgAdmin 或 psql 中执行命令以创建 *demo* 表并将值插入其中。以下命令用于从演示表中提取记录 输出 执行上述命令后,我们将获得输出 ![]() 在此示例中,我们使用 ORDER BY 条件按 num 列中的升序获取 demo 表中的值,该列将 NULL 放在另一个值之后。因此,如果使用 ASC 选项,则默认情况下 ORDER BY 子句采用 NULLS LAST 选项。 因此,以下命令用于获取类似的结果 输出 实现上述命令后,我们将获得以下结果 ![]() 我们将使用 NULLS FIRST 选项将 NULL 放在其他非空值之前,如下所示 输出 执行上述命令后,我们将获得以下结果 ![]() 然后,我们将通过以下命令的帮助按降序获取 demo 表中 num 列中的值 输出 一旦我们实现了上述命令,我们将得到以下输出 ![]() 执行 ASC 和 DESC 命令后,我们可以看到输出,默认情况下,带 DESC 选项的 ORDER BY 条件使用 NULLS FIRST 选项。 反转顺序我们将使用 NULLS LAST 选项来反转特定表中的顺序。 输出 执行上述命令后,我们将获得以下结果 ![]() 概述
|
我们请求您订阅我们的新闻通讯以获取最新更新。