当我们查询数据时,SELECT语句返回的结果默认没有指定的返回顺序。要对结果集的行进行排序,需要在SELECT
语句中使用ORDER BY
子句,根据排序表达式按升序或降序对SELECT
语句返回的行进行排序。
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语句的选择列表中的一列或多列。例如
select distinct col1 from tb1;
这句话就是将 col1 列去重并返回,而如果需要对多列去重,不需要写括号,直接在 distinct 的列后面继续用逗号分隔列出列名即可。
select distinct col1,col2 from tb1;
这句话就是对col1和col2 两列的集合进行去重。
一般查询结果可能会有很多条,有时候我们只想要其中一部分,这时候就可以用分页语句来实现
首先是限制返回的条数,可以使用 limit
来实现,下面这句话就实现了最多查询是十条记录。
select name,age from user limit 10;
如果想要分页查询,每页10条,查询第三页的数据,就需要
select name,age from user limit 10 offset 20;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。