DMSQL LIMIT的限定条件是什么

49次阅读
没有评论

共计 2111 个字符,预计需要花费 6 分钟才能阅读完成。

今天就跟大家聊聊有关 DMSQL LIMIT 的限定条件是什么,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

在 DM 中,可以使用限定条件对结果集做出筛选,支持 LIMIT 子句和 ROW_LIMIT 子句两种方式。
LIMIT 子句
LIMIT 子句按顺序选取结果集中某条记录开始的 N 条记录。语法如下
::= LIMIT 记录数
| 记录数 , 记录数
| 记录数 OFFSET 偏移量

记录数 ::= 整数
偏移量 ::= 整数

共支持三种方式:
1. LIMIT N:选择前 N 条记录;
2. LIMIT M,N:选择第 M 条记录之后的 N 条记录;
3. LIMIT M OFFSET N:选择第 N 条记录之后的 M 条记录。
注意:LIMIT 不能与 TOP 同时出现在查询语句中。
例如查询前 2 条记录

SQL  SELECT PRODUCTID , NAME FROM PRODUCTION.PRODUCT LIMIT 2;
LINEID PRODUCTID NAME
---------- ----------- ------
1 1  红楼梦
2 2  水浒传
used time: 1.236(ms). Execute id is 39690.

例如查询第 3,4 个登记的产品的编号和名称。

SQL  SELECT PRODUCTID, NAME FROM PRODUCTION.PRODUCT LIMIT 2 OFFSET 2;
LINEID PRODUCTID NAME
---------- ----------- --------------------
1 3  老人与海
2 4  射雕英雄传(全四册)used time: 1.035(ms). Execute id is 39698.

例如查询前第 5,6,7 个登记的姓名。

SQL  SELECT PERSONID,NAME FROM PERSON.PERSON LIMIT 4,3;
LINEID PERSONID NAME
---------- ----------- ----
1 5  孙丽
2 6  黄非
3 7  王菲
used time: 1.137(ms). Execute id is 39701.

ROW_LIMIT 子句
用来指定查询结果中,偏移位置的行数或者百分比行数,以便更为灵活地获取查询结果。
语法如下
ROW_LIMIT 子句 ::= [OFFSET] []
::= FETCH 大小 [PERCENT] ROW | ROWS
参数说明:
offset:指定查询返回行的起始偏移。
FIRST | NEXT:FIRST 为从偏移为 0 的位置开始。NEXT,为从指定的偏移的下一行开始获取结果。只做注释说明的作用,没有实际的限定作用。大小 [PERCENT]:指定返回行的行数(无 PERCENT)或者百分比(有 PERCENT)。ONLY | WITH TIES:指定结果集是否返回额外的行。额外的行是指与最后一行以相同的排序键排序的所有行。ONLY 为只返回指定的行数。WITH TIES 必须与 ORDER BY 子句同时出现,如果没有 ORDER BY 子句,则忽略 WITH TIES。

参数限制:
1、offset:必须为数字。offset 为负数的话视为 0。offset 为 NULL 或者大于或等于所返回的行数,返回 0 行。offset 为小数时,小数部分截断。
2、大小:只能为数字。percent 指定为负数时,视为 0%。percent 为 NULL,返回 0 行。如果 percent 都没有指定,返回 1 行。
3、不能与一起使用。
4、使用了选项,select 列中不能包含有 CURRVAL 或者 NEXTVAL 伪列。
5、视图的查询定义中包含有,这个视图不会增量刷新。

例如查询价格最便宜的 50% 的商品

SQL  SELECT NAME, NOWPRICE FROM PRODUCTION.PRODUCT ORDER BY NOWPRICE FETCH FIRST 50 PERCENT ROWS ONLY;
LINEID NAME NOWPRICE
---------- ---------------- --------
1  老人与海  6.1000
2  突破英文基础词汇  11.1000
3  工作中无小事  11.4000
4  水浒传  14.3000
5  红楼梦  15.2000
used time: 2.689(ms). Execute id is 39731.

例如查询价格第 3 便宜开始的 3 条记录

SQL  SELECT NAME, NOWPRICE FROM PRODUCTION.PRODUCT ORDER BY NOWPRICE OFFSET 2 ROWS FETCH FIRST 3 ROWS ONLY;
LINEID NAME NOWPRICE
---------- ------------ --------
1  工作中无小事  11.4000
2  水浒传  14.3000
3  红楼梦  15.2000
used time: 2.543(ms). Execute id is 39735.

看完上述内容,你们对 DMSQL LIMIT 的限定条件是什么 有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计2111字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)