更新时间:2026-10-21 GMT+08:00
分页查询
语法如下:
SELECT query_list FROM table_name [ LIMIT { [offset,] count | ALL } ]
SELECT query_list FROM table_name [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY [OFFSET offset_count]] - offset:表示从第几行向后开始。
- count:表示向后查询几条数据。
- ALL:表示向后查询所有的数据。
- FIRST:表示从结果集开头查询数据,可配合OFFSET从offset_count偏移量处开始查询。
- NEXT:配合OFFSET,表示从offset_count偏移量处开始查询,未指定OFFSET时,从结果集开头查询数据。
- offset_count:偏移量,表示在指定偏移量后查询数据。
-- 建表并插入100条数据。 gaussdb=# CREATE TABLE testl(id int PRIMARY KEY, flag varchar(10)); gaussdb=# INSERT INTO testl (id, flag) VALUES (generate_series(1,100),'flag'||generate_series(1,100)); -- 查询前5条数据。 gaussdb=# SELECT * FROM testl ORDER BY 1 LIMIT 5; id | flag ----+------- 1 | flag1 2 | flag2 3 | flag3 4 | flag4 5 | flag5 (5 rows) gaussdb=# SELECT * FROM testl ORDER BY 1 FETCH FIRST 5 ROWS ONLY; id | flag ----+------- 1 | flag1 2 | flag2 3 | flag3 4 | flag4 5 | flag5 (5 rows) gaussdb=# SELECT * FROM testl ORDER BY 1 FETCH FIRST 2+3 ROWS ONLY; id | flag ----+------- 1 | flag1 2 | flag2 3 | flag3 4 | flag4 5 | flag5 (5 rows) gaussdb=# SELECT * FROM testl ORDER BY 1 FETCH FIRST 4.5 ROWS ONLY; id | flag ----+------- 1 | flag1 2 | flag2 3 | flag3 4 | flag4 5 | flag5 (5 rows) -- 从第20条向后查询4条数据。 gaussdb=# SELECT * FROM testl ORDER BY 1 LIMIT 20,4; id | flag ----+-------- 21 | flag21 22 | flag22 23 | flag23 24 | flag24 (4 rows) gaussdb=# SELECT * FROM testl ORDER BY 1 FETCH NEXT 4 ROWS ONLY OFFSET 20; id | flag ----+-------- 21 | flag21 22 | flag22 23 | flag23 24 | flag24 (4 rows) -- 从第96条向后查询出所有数据。 gaussdb=# SELECT * FROM testl ORDER BY 1 LIMIT 96,ALL; id | flag -----+--------- 97 | flag97 98 | flag98 99 | flag99 100 | flag100 (4 rows) -- 删除表。 gaussdb=# DROP TABLE testl;
父主题: SELECT