返回首页

gbase数据、南大通用产品文档:GBase8aLIMIT

更新日期:2024年09月11日

语法格式
LIMIT {[offset,] row_count | row_count OFFSET offset}
参数说明

LIMIT row_count:row_count 是一个整数型数值,表示从记录集开始返回
row_count 行结果集。如果row_count 指定的数值大于SELECT 后的结果集,
那么row_count 将不起作用。
LIMIT row_count
等价于
LIMIT 0, row_count
或者等价于
LIMIT row_count OFFSET 0

LIMIT row_count OFFSET offset:row_count 指定返回结果集的行数,offset 指
定结果集的偏移量,
初偏移量的起始值是0
(而不是1)

即偏移量0对应SELECT
返回的第一行结果集。
下面的语句含义为从SELECT 结果集的偏移量5 的位置开始,返回10 行结果
集。
SELECT * FROM ssbm.customer LIMIT 5,10;
示例

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 708

示例1:... LIMIT...
gbase> SELECT SUM(lo_quantity),lo_orderkey FROM ssbm.lineorder GROUP BY
lo_orderkey ORDER BY lo_orderkey LIMIT 10;
+------------------+-------------+
| SUM(lo_quantity) | lo_orderkey |
+------------------+-------------+
| 61 | 1 |
| 149 | 2 |
| 151 | 3 |
| 30 | 4 |
| 41 | 5 |
| 191 | 6 |
| 12 | 7 |
| 66 | 32 |
| 184 | 33 |
| 75 | 34 |
+------------------+-------------+
10 rows in set

示例2:t1 表中包含10 行数据,使用LIMIT m OFFSET n 的形式,显示执行
SELECT 语句后的结果。
查看全部10 行结果集:
gbase> SELECT * FROM t1 LIMIT 10;
+------+
| a |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+------+
10 rows in set
从结果集中偏移量为2 的位置开始,
返回3 行结果集,
因为SELECT 结果集的
第一行的偏移值为0,所以SELECT 的第三行是偏移量2 的起始位置,从此处
取3 行结果集。
gbase> SELECT * FROM t1 LIMIT 3 OFFSET 2;
+------+

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 709
| a |
+------+
| 3 |
| 4 |
| 5 |
+------+
3 rows in set

背景信息
在没有资源管理的情况下,多用户多任务并发执行,资源消耗得不到有效调节,会
出现任务间资源激烈争抢以及消耗过度等情况。
在这样的场景下,
SQL 的执行会变
得缓慢并且不可预期,系统会因为资源使用过度而崩溃。因此需要对资源的使用进
行管理调度,使得SQL 任务能够高效快速的运行,系统能够更稳定。

指定包围符自转义
当进入该转义模式后,如果该字段满足使用包围符的规则(包括正常字段和通过
NULL_VALUE 参数设置的NULL 值),则该字段中所有与包围符相同的字符采
用双写的方式进行转义。
示例
示例中所用的表及数据:
CREATE TABLE "aa" ("n" int(11) DEFAULT NULL,
"v" varchar(5)
DEFAULT NULL);
INSERT INTO aa VALUES(10, NULL), (11, '数据a'), (NULL, 'bbb'), (12,
'a"b"c');
导出SQL 语句,指定多个字符为行首分隔符:
gbase> select * from aa into outfile '/home/davies/out.txt' fields escaped by ''
terminated by '|' double_enclosed by '"' null_value 'gg"gg';
Query OK, 4 rows affected (Elapsed: 00:00:00.03)
查看导出文件:
$ cat out.txt
"10"|"gg""gg"
"11"|"数据a"
"gg""gg"|"bbb"
"12"|"a""b""c"
可见,进入此模式后,会对所有需要加包围符的普通字段(如:a"b"c)以及通过
NULL_VALUE 参数设置的NULL 值(如:gg"gg)中的包围符均采用了双写的方
式进行转义。