SQLServer基礎: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 = 12SELECT TOP (@n) *FROM UserInfo ;

注意:在未指定ORDER BY子句的情況下,TOP子句返回的數據行,是那些在物理循序上優先訪問到的行,而并不一定是邏輯上的前幾行。

簡單來說,這種返回結果具有不確定性。即使指定了ORDER BY子句,但是所指定的排序列中含有重復值,返回的結果也具有不確定性。不確定的數據,對于數據使用而言,沒有多少價值。

解決列中存在重復值時返回結果的不確定性問題,可以使用WITH TIES 關鍵字。該關鍵字將指定返回包含ORDER BY子句返回的最后一個值的所有行,這樣將超過expression指定的數量。

示例:

SELECT TOP 2 WITH TIES FROM UserInfoORDER BY CreateDate

2、OFFSET-FETCH用法

SQL Server 2012版本引入了對OFFSET-FETCH技術的支持。

OFFSET-FETCH篩選通常被視為ORDER BY子句的一部分,通常用于實現按順序分頁顯示效果。OFFSET指定要跳過的行數,FETCH指定在跳過的行數后要篩選的行數

用法:

SELECT UserID, Birthday, Name,AgeFROM UserInfoORDER UserIDOFFSET 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;

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270799.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

取本地數據_深入理解Kafka服務端之Follower副本如何同步Leader副本的數據

一、場景分析Kafka采用的是主寫主讀的方式,即客戶端的讀寫請求都由分區的Leader副本處理,那么Follower副本要想保證和Leader副本數據一致,就需要不斷地從Leader副本拉取消息來進行同步。由于同一個分區的Leader副本和Follower副本分布在不同的…

用計算機0和1表達難舍之情,表達不舍之情的句子是

1. 表達難舍之情的句子“悲莫悲兮生別離,樂莫樂兮新相知”,離別送行情難自禁。1.與君離別意,同是宦游人。 海內存知己,天涯若比鄰。(王勃《送杜少府之任蜀州》) 2.又送王孫去,萋萋滿別情。(李白《送友人》) 3.春草明年…

SQLServer子查詢相關知識筆記

今天給大家介紹以下SQLServer子查詢相關知識,希望對大家能有所幫助!1、子查詢概念介紹子查詢可以嵌套在SELECT、INSERT、UPDATE、DELETE語句或其他子查詢語句中的查詢,子查詢一般作為查詢中間結果集角色,子查詢也稱為內部查詢或內…

使用react的好處_react的優點是什么呀-問答-阿里云開發者社區-阿里云

首先react通過介紹新的聲明式語法JSX來重新定義視圖開發,優點其實官網就有,不過我可以簡單說兩句:第一,學會了react以及這個JSX語法,你不光可以通過react寫web;也可以通過react-native寫ios或者android的應…

Linux運行級詳解

對于那些在DOS/Win9x/NT平臺下的高級用戶而言,Linux似乎是一個怪物。沒有config.sys,沒有 autoexec.bat,具有個人特色的機器配置不知道從何開始。 需要說明的是,很多人認為Linux是Unix的一個克隆,但是,這種…

軟件:推薦八款電腦實用軟件,你都用過嗎?

今天給大家推薦八款電腦非常實用的軟件,希望對大家能有所幫助!1、Audio Hijack Pro一款Mac 上的錄音軟件。它比較強大的功能是可以錄制多個應用的聲音,然后組合成一個結果,然后輸出。2、快貼一個跨平臺剪切板同步軟件。你只需要簡…

計算機芯片級維修包括哪些,電腦芯片級維修教程

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓讓你足不出門,就能像在培訓班里學芯片級維修一樣,也能成為一位硬件維修工程師。給你節省上千的學費。全部資料從基礎學起,沒電子電路基礎的朋友一樣能很快的上手。讓你開一家專業的計算機硬件芯片…

matlab 神經網絡設計多層隱含層_數據預測之BP神經網絡具體應用以及matlab代碼

1.具體應用實例。根據表2,預測序號15的跳高成績。表2 國內男子跳高運動員各項素質指標序號跳高成績()30行進跑(s)立定三級跳遠()助跑摸高()助跑4—6步跳高()負重深蹲杠鈴()杠鈴半蹲系數100(s)抓舉()12.243.29.63.452.151402.811.05022.333.210.33.752.21203.410.970…

硬件:開機如何進BIOS,U盤啟動快捷鍵一鍵查詢

??作者主頁:IT技術分享社區 ??作者簡介:大家好,我是IT技術分享社區的博主,從事C#、Java開發九年,對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽: 數據庫領域優質創作者🏆&#x…

考研計算機專業課統考嗎,09考研計算機專業課統考增至4部分內容

北京考試報訊(記者 陳霄飛) 全國碩士研究生統一入學考試計算機科學與技術學科的初試專業課考試明年將實行聯考。有關考研輔導專家認為,針對初試專業課調整為4部分內容的情況,計劃報考該專業的考生要提早調整復習計劃,適當擴大復習范圍。初試專…

強制關機對電腦的傷害你有必要了解一下

不管你的電腦新舊與否,我想大家肯定都遇到過死機、卡頓無反應的情況吧,這個時候無論是電腦高手還是萌新小白同場都會采用一個相同的解決方案,對,那就是直接關機。 當然遇到這種情況,長按電源鍵10秒強制關機&#xff0c…

嵌入式計算機的發展階段,嵌入式發展經歷了哪四個階段?

從上個世紀70年代單片機的出現到今天,應用,嵌入式系統少說也有近30年的歷史了。可以說嵌入式系統經歷了發展的4個階段。今天小編就為大家分享一下嵌入式系統發展的4個主要階段:1、無操作系統階段隨著各種嵌入式微處理器、微控制器的廣泛縱觀嵌…

testbench實例 vhdl_學寫 Testbench --- 結構篇VHDL實例

testbench.v:----------------------------------------------------------------------//// File header 具體參考 編碼風格專題//define MAX 20 宏定義include "driver.v"include "monitor.v包含有其他模塊,如果在同一目錄下可以不指定includetime…

操作系統的中斷和異常

中斷和異常 早期的計算機,各程序只能串行執行,系統資源利用率低 中斷機制的誕生 中斷的概念和作用 中斷的分類

【CUDA開發】Thrust庫

Thrust庫從C的STL中得到靈感,將最簡單的類似于STL的結構放在Thrust庫中,比如STL中的vector。此外,Thrust庫還包含STL中的算法和迭代器。Thrust函數庫提供了兩個向量容器,分別為主機和設備提供了向量類并且分別駐留在主機和設備的全…

硬件:臺式機老式鍵盤知識科普

??作者主頁:IT技術分享社區 ??作者簡介:大家好,我是IT技術分享社區的博主,從事C#、Java開發九年,對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽: 數據庫領域優質創作者🏆&#x…

高考填報志愿計算機操作技巧,高考志愿填報技巧經驗

高考志愿填報技巧經驗2020-12-30 14:43:23文/葉丹填報技巧:在所有科目考試結束后合理估分,提前參考往年錄取分數線,明確各項重要的時間節點,搜集目標院校資料,查詢目標院校專業近幾年的位次情況,有意向的學…

npz文件轉為npy_numpy的文件存儲 .npy .npz 文件

1)Numpy能夠讀寫磁盤上的文本數據或二進制數據。將數組以二進制格式保存到磁盤np.load和np.save是讀寫磁盤數組數據的兩個主要函數,默認情況下,數組是以未壓縮的原始二進制格式保存在擴展名為.npy的文件中。import numpy as npanp.arange(5)np.save(test…