中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用TOP、OFFSET-FETCH、SET ROWCOUNT語句

發布時間:2021-10-09 17:37:32 來源:億速云 閱讀:136 作者:iii 欄目:數據庫

這篇文章主要介紹“如何使用TOP、OFFSET-FETCH、SET ROWCOUNT語句”,在日常操作中,相信很多人在如何使用TOP、OFFSET-FETCH、SET ROWCOUNT語句問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用TOP、OFFSET-FETCH、SET ROWCOUNT語句”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

如何使用TOP、OFFSET-FETCH、SET ROWCOUNT語句

1、 TOP用法

語法格式:TOP ( expression ) [ PERCENT ] [ WITH TIES ]

  • expression:返回行數的數值表達式

  • PERCENT:指返回的結果集行的百分比。

用法:

--從UserInfo數據表提取20行記錄 SELECT TOP 20 * FROM UserInfo; --UserInfo數據表提取10%行記錄 SELECT TOP 10 PERCENT * FROM UserInfo;

表達式中指定返回的行數或百分比,則必須將表達式包含在括號內。用法如下:

DECLARE @n AS int; SET @n = 12 SELECT TOP (@n) * FROM UserInfo ;

注意:在未指定ORDER  BY子句的情況下,TOP子句返回的數據行,是那些在物理循序上優先訪問到的行,而并不一定是邏輯上的前幾行。簡單來說,這種返回結果具有不確定性。即使指定了ORDER  BY子句,但是所指定的排序列中含有重復值,返回的結果也具有不確定性。不確定的數據,對于數據使用而言,沒有多少價值。解決列中存在重復值時返回結果的不確定性問題,可以使用WITH  TIES 關鍵字。該關鍵字將指定返回包含ORDER BY子句返回的最后一個值的所有行,這樣將超過expression指定的數量。示例:

SELECT TOP 2 WITH TIES  FROM UserInfo ORDER BY CreateDate

2、OFFSET-FETCH用法

SQL Server 2012版本引入了對OFFSET-FETCH技術的支持。OFFSET-FETCH篩選通常被視為ORDER  BY子句的一部分,通常用于實現按順序分頁顯示效果。OFFSET指定要跳過的行數,FETCH指定在跳過的行數后要篩選的行數用法:

SELECT UserID, Birthday, Name,Age FROM UserInfo ORDER UserID OFFSET 20 ROWS FETCH NEXT 15 ROWS ONLY;

注意:使用OFFSET-FETCH的查詢必須具有ORDER  BY子句。此外,FETCH子句也必須有OFFSET子句。如果不想跳過任何行,但是希望使用FETCH篩選,可以使用OFFSET 0  ROWS來表示。不過,單獨使用FETCH表示跳過指定的行數,并返回查詢結果中所有剩余行。OFFSET-FETCH語法有一些有趣的語言方面需要注意。單數格式ROW和復數格式ROWS是可以互換的,因此能夠以直觀的類似英語方式來描述篩選。例如,假設僅希望獲取一行,如果指定了FETCH  1 ROWS,雖然這在語法上是有效的,不過看上去會很怪。因此,可以使用FETCH 1  ROW格式。此互換同樣適用于OFFSET子句。另外,如果不希望跳過任何行(OFFSET 0  ROWS),可能覺得“first”比“next”更合適,因此,FIRST和NEXT格式是可以互換的。從支持跳過功能看,OFFSET-FETCH子句比TOP子句更靈活。但OFFSET-FETCH不支持PERCENT和WITH  TIES選項,而TOP支持。由于OFFSET-FETCH是標準的,而TOP不是,建議使用OFFSET-FETCH作為默認選擇,除非你需要TOP支持且OFFSET-FETCH不支持的功能。

3、SET ROWCOUNT語句

SET ROWCOUNT n 語句限制結果集的大小,該語句指定在返回指定的n行后停止處理查詢。SET ROWCOUNT與TOP的差別如下:

  • SET ROWCOUNT限制適用于計算ORDER BY后在結果集中生成行。如果指定了ORDER  BY,SELECT語句將從分類排序后的某個值集中選擇n行后結束。

  • TOP和OFFSET-FETCH適用于單個SELECT語句。直到執行下一個SET ROWCOUNT語句前,SET  ROWCOUNT設置將一直有效。如果執行SET ROWCOUNT 0將關閉該選項。

說明:TOP和OFFSET-FETCH性能要優于使用SET ROWCOUNT,應當盡量避免使用SET ROWCOUNT。用法:

SET ROWCOUNT 4; SELECT TOP 20 * FROM UserInfo;

到此,關于“如何使用TOP、OFFSET-FETCH、SET ROWCOUNT語句”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东安县| 老河口市| 茂名市| 财经| 静安区| 海伦市| 如皋市| 竹溪县| 洛阳市| 东城区| 崇左市| 广汉市| 乡宁县| 乌兰县| 南郑县| 韶山市| 安宁市| 涿鹿县| 商南县| 介休市| 柯坪县| 瑞安市| 保山市| 松原市| 四川省| 开鲁县| 凤翔县| 嘉禾县| 赤水市| 青冈县| 麻江县| 浦城县| 扎兰屯市| 韶山市| 宁波市| 毕节市| 吴桥县| 玉门市| 盐城市| 宝山区| 安阳县|