语法:
select * from persons limit A offset B;
解释:
A就是你需要多少行;
B就是查询的起点位置。
示例:
select * from persons limit 5 offset 0 ;
意思是,起点0开始查询,返回5条数据。
select * from persons limit 5 offset 5 ;
意思是,起点5开始查询,返回5条数据。
特殊:
select * from persons limit 5 ;
这个就类似:
select * from persons limit 5 offset 0;
也就是,从起点0开始查询,返回5条数据。
按规则排序,同时也要分页:
select * from persons
order by lastname
limit 5 offset 0;
中文排序
select id,description from my_table order by description;
select id,description from my_table order by convert_to(description, ‘GBK’);
第一种是按照LANG=C,即ASCII,进行排序。
第二种是按照拼音排序。
默认的排序为order by 字段名,
如果该字段不允许为空的情况下可以这样操作,
但是当字段允许为null时,order by 字段名的方式会导致:
升序时(asc):
会从最小值开始升序,最后面接上字段值为null的值。
降序时(desc):
会把Null值作为最大值排在前面,显然这并不是我们想要的排序结果。
PostgreSQL提供 NULLS FIRST | ORDER BY 子句的最后一个关键字可以满足需要
... ORDER BY last_updated NULLS FIRST
SELECT last_updated
FROM your_table
ORDER BY CASE WHEN last_updated IS NULL THEN 0 ELSE 1 END,
last_updated ASC;
版权声明:本文为weixin_43343423原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。