# 分页查询
语法如下：
```
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;
```
