前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【技术布局】Postgre SQL Select中的排序、去重和分页

【技术布局】Postgre SQL Select中的排序、去重和分页

原创
作者头像
blueflyming
发布2025-01-13 22:27:53
发布2025-01-13 22:27:53
770
举报
一、排序

当我们查询数据时,SELECT语句返回的结果默认没有指定的返回顺序。要对结果集的行进行排序,需要在SELECT语句中使用ORDER BY子句,根据排序表达式按升序或降序对SELECT语句返回的行进行排序。

代码语言:sql
复制
SELECT select_list FROM	table_name
ORDER BY
	sort_expression1 [ASC | DESC],
	sort_expressionN [ASC | DESC];

在这个排序语法中,首先指定一个排序目标的表达式,可以是要在ORDER BY关键字之后排序的列或表达式,一般是列名。如果要根据多个列或表达式对结果集进行排序,则需要在两个列或表达式之间用逗号来分隔它们。其次可以使用ASC选项对行进行升序排序,以及DESC选项对行进行降序排序。如果省略选项,则ORDER BY默认使用ASC

当数据库中存在空值时,默认的排序结果是空值在最后,如果想要空值在最前,可以在order by的排序表达式后面(asc/desc后面)增加 NULL FIRST来指定空值在排序的最前面(默认情况下是 NULL LAST)。

二、去重

PostgreSQL 通过DISTINCT关键之来提供去重功能,用于在 SELECT 语句中从结果集中删除重复行。DISTINCT子句为每组重复项保留一行。DISTINCT子句可以应用于SELECT语句的选择列表中的一列或多列。例如

代码语言:sql
复制
select distinct col1  from tb1;

这句话就是将 col1 列去重并返回,而如果需要对多列去重,不需要写括号,直接在 distinct 的列后面继续用逗号分隔列出列名即可。

代码语言:sql
复制
select distinct col1,col2 from tb1;

这句话就是对col1和col2 两列的集合进行去重。

三、分页

一般查询结果可能会有很多条,有时候我们只想要其中一部分,这时候就可以用分页语句来实现

首先是限制返回的条数,可以使用 limit 来实现,下面这句话就实现了最多查询是十条记录。

代码语言:sql
复制
select name,age from user limit 10;

如果想要分页查询,每页10条,查询第三页的数据,就需要

代码语言:sql
复制
select name,age from user limit 10 offset 20;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、排序
  • 二、去重
  • 三、分页
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档