欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[GBase 8s 教程]GBase 8s 分页语法

程序员文章站 2022-07-01 07:52:39
...

GBase 8s 中支持使用SKIP m FIRST/LIMIT n 选项,或者使用TOP m,n 选项来限制SELECT语句中查询的数据的数量。
注:两者不可同时使用。

语法
带有SKIP m FIRST/LIMIT n 选项的 SELECT 语句的基本语法如下:

SELECT SKIP m FIRST n column1, column2, columnN
FROM table_name

带有TOP m,n 选项的 SELECT 语句的基本语法如下:

SELECT TOP m,n column1, column2, columnN
FROM table_name

实例
创建 COMPANY 表,导入测试数据

DROP TABLE IF EXISTS COMPANY;
CREATE TABLE COMPANY(
  ID         SERIAL         PRIMARY KEY,
  NAME       VARCHAR(40)    NOT NULL,
  AGE        INT            NOT NULL,
  ADDRESS    CHAR(50),
  SALARY     DECIMAL(10,2),
  JOIN_DATE  DATE           DEFAULT TODAY
);
INSERT INTO COMPANY VALUES (0, '李雷', 37, '北京', 20000.00,'2005-05-13');
INSERT INTO COMPANY VALUES (0, '韩梅梅', 35, '天津', 16000.00, '2007-12-18');
INSERT INTO COMPANY VALUES (0, '林涛', 36, '上海', 25000.00, '2006-01-04');
INSERT INTO COMPANY VALUES (0, '魏华', 36, '西安', 15000.00, '2007-08-30');
INSERT INTO COMPANY VALUES (0, '露茜', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '莉莉', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '吉姆', 35, '华盛顿', 16000.00, '2010-12-13');
INSERT INTO COMPANY VALUES (0, '汤姆', 36, '渥太华', 21000.00, '2010-04-30');

数据内容如下:

> select id,name,age,salary from company;

         id name                                             age       salary

          1 李雷                                              37     20000.00
          2 韩梅梅                                            35     16000.00
          3 林涛                                              36     25000.00
          4 魏华                                              36     15000.00
          5 露茜                                              34     22000.00
          6 莉莉                                              34     22000.00
          7 吉姆                                              35     16000.00
          8 汤姆                                              36     21000.00

8 row(s) retrieved.

下面实例将找出限定的数量的数据,即读取 4 条数据:

> select first 4 id,name,age,salary from company;

         id name                                             age       salary

          1 李雷                                              37     20000.00
          2 韩梅梅                                            35     16000.00
          3 林涛                                              36     25000.00
          4 魏华                                              36     15000.00

4 row(s) retrieved.

或者

> select top 4 id,name,age,salary from company;

         id name                                             age       salary

          1 李雷                                              37     20000.00
          2 韩梅梅                                            35     16000.00
          3 林涛                                              36     25000.00
          4 魏华                                              36     15000.00

4 row(s) retrieved.

但是,在某些情况下,可能需要从一个特定的偏移开始提取记录。

下面是一个实例,从第三位开始提取 3 个记录:

> select skip 2 first 3 id,name,age,salary from company;

         id name                                             age       salary

          3 林涛                                              36     25000.00
          4 魏华                                              36     15000.00
          5 露茜                                              34     22000.00

3 row(s) retrieved.

或者

> select top 2,3 id,name,age,salary from company;

         id name                                             age       salary

          3 林涛                                              36     25000.00
          4 魏华                                              36     15000.00
          5 露茜                                              34     22000.00

3 row(s) retrieved.