共計(jì) 2111 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。
今天就跟大家聊聊有關(guān) DMSQL LIMIT 的限定條件是什么,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
在 DM 中,可以使用限定條件對(duì)結(jié)果集做出篩選,支持 LIMIT 子句和 ROW_LIMIT 子句兩種方式。
LIMIT 子句
LIMIT 子句按順序選取結(jié)果集中某條記錄開始的 N 條記錄。語(yǔ)法如下
::= LIMIT 記錄數(shù)
| 記錄數(shù) , 記錄數(shù)
| 記錄數(shù) OFFSET 偏移量
記錄數(shù) ::= 整數(shù)
偏移量 ::= 整數(shù)
共支持三種方式:
1. LIMIT N:選擇前 N 條記錄;
2. LIMIT M,N:選擇第 M 條記錄之后的 N 條記錄;
3. LIMIT M OFFSET N:選擇第 N 條記錄之后的 M 條記錄。
注意:LIMIT 不能與 TOP 同時(shí)出現(xiàn)在查詢語(yǔ)句中。
例如查詢前 2 條記錄
SQL SELECT PRODUCTID , NAME FROM PRODUCTION.PRODUCT LIMIT 2;
LINEID PRODUCTID NAME
---------- ----------- ------
1 1 紅樓夢(mèng)
2 2 水滸傳
used time: 1.236(ms). Execute id is 39690.
例如查詢第 3,4 個(gè)登記的產(chǎn)品的編號(hào)和名稱。
SQL SELECT PRODUCTID, NAME FROM PRODUCTION.PRODUCT LIMIT 2 OFFSET 2;
LINEID PRODUCTID NAME
---------- ----------- --------------------
1 3 老人與海
2 4 射雕英雄傳(全四冊(cè))used time: 1.035(ms). Execute id is 39698.
例如查詢前第 5,6,7 個(gè)登記的姓名。
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 子句
用來(lái)指定查詢結(jié)果中,偏移位置的行數(shù)或者百分比行數(shù),以便更為靈活地獲取查詢結(jié)果。
語(yǔ)法如下
ROW_LIMIT 子句 ::= [OFFSET] []
::= FETCH 大小 [PERCENT] ROW | ROWS
參數(shù)說(shuō)明:
offset:指定查詢返回行的起始偏移。
FIRST | NEXT:FIRST 為從偏移為 0 的位置開始。NEXT,為從指定的偏移的下一行開始獲取結(jié)果。只做注釋說(shuō)明的作用,沒(méi)有實(shí)際的限定作用。大小 [PERCENT]:指定返回行的行數(shù)(無(wú) PERCENT)或者百分比(有 PERCENT)。ONLY | WITH TIES:指定結(jié)果集是否返回額外的行。額外的行是指與最后一行以相同的排序鍵排序的所有行。ONLY 為只返回指定的行數(shù)。WITH TIES 必須與 ORDER BY 子句同時(shí)出現(xiàn),如果沒(méi)有 ORDER BY 子句,則忽略 WITH TIES。
參數(shù)限制:
1、offset:必須為數(shù)字。offset 為負(fù)數(shù)的話視為 0。offset 為 NULL 或者大于或等于所返回的行數(shù),返回 0 行。offset 為小數(shù)時(shí),小數(shù)部分截?cái)唷?br />2、大小:只能為數(shù)字。percent 指定為負(fù)數(shù)時(shí),視為 0%。percent 為 NULL,返回 0 行。如果 percent 都沒(méi)有指定,返回 1 行。
3、不能與一起使用。
4、使用了選項(xiàng),select 列中不能包含有 CURRVAL 或者 NEXTVAL 偽列。
5、視圖的查詢定義中包含有,這個(gè)視圖不會(huì)增量刷新。
例如查詢價(jià)格最便宜的 50% 的商品
SQL SELECT NAME, NOWPRICE FROM PRODUCTION.PRODUCT ORDER BY NOWPRICE FETCH FIRST 50 PERCENT ROWS ONLY;
LINEID NAME NOWPRICE
---------- ---------------- --------
1 老人與海 6.1000
2 突破英文基礎(chǔ)詞匯 11.1000
3 工作中無(wú)小事 11.4000
4 水滸傳 14.3000
5 紅樓夢(mèng) 15.2000
used time: 2.689(ms). Execute id is 39731.
例如查詢價(jià)格第 3 便宜開始的 3 條記錄
SQL SELECT NAME, NOWPRICE FROM PRODUCTION.PRODUCT ORDER BY NOWPRICE OFFSET 2 ROWS FETCH FIRST 3 ROWS ONLY;
LINEID NAME NOWPRICE
---------- ------------ --------
1 工作中無(wú)小事 11.4000
2 水滸傳 14.3000
3 紅樓夢(mèng) 15.2000
used time: 2.543(ms). Execute id is 39735.
看完上述內(nèi)容,你們對(duì) DMSQL LIMIT 的限定條件是什么 有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝大家的支持。