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

溫馨提示×

溫馨提示×

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

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

SQL中ROW_NUMBER函數怎么用

發布時間:2022-03-29 14:32:46 來源:億速云 閱讀:2048 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關SQL中ROW_NUMBER函數怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

ROW_NUMBER

  row_number的用途的非常廣泛,排序最好用他,一般可以用來實現web程序的分頁,他會為查詢出來的每一行記錄生成一個序號,依次排序且不會重復,注意使用row_number函數時必須要用over子句選擇對某一列進行排序才能生成序號。row_number用法實例:

select ROW_NUMBER() OVER(order by [SubTime] desc) as row_num,* from [Order]

  查詢結果如下圖所示:

  SQL中ROW_NUMBER函數怎么用

  圖中的row_num列就是row_number函數生成的序號列,其基本原理是先使用over子句中的排序語句對記錄進行排序,然后按照這個順序生成序號。over子句中的order by子句與SQL語句中的order by子句沒有任何關系,這兩處的order by 可以完全不同,如以下sql,over子句中根據SubTime降序排列,Sql語句中則按TotalPrice降序排列。

select ROW_NUMBER() OVER(order by [SubTime] desc) as row_num,* from [Order] order by [TotalPrice] desc

  查詢結果如下圖所示:

  SQL中ROW_NUMBER函數怎么用

  利用row_number可以實現web程序的分頁,我們來查詢指定范圍的表數據。例:根據訂單提交時間倒序排列獲取第三至第五條數據。

with orderSection as(    select ROW_NUMBER() OVER(order by [SubTime] desc) rownum,* from [Order])select * from [orderSection] where rownum between 3 and 5 order by [SubTime] desc

  查詢結果如下圖所示:

  SQL中ROW_NUMBER函數怎么用

  注意:在使用row_number實現分頁時需要特別注意一點,over子句中的order by 要與Sql排序記錄中的order by 保持一致,否則得到的序號可能不是連續的。下面我們寫一個例子來證實這一點,將上面Sql語句中的排序字段由SubTime改為TotalPrice。另外提一下,對于帶有子查詢和CTE的查詢,子查詢和CTE查詢有序并不代表整個查詢有序,除非顯示指定了order by。

with orderSection as(    select ROW_NUMBER() OVER(order by [SubTime] desc) rownum,* from [Order])select * from [orderSection] where rownum between 3 and 5 order by [TotalPrice] desc

  查詢結果如下圖所示:

  SQL中ROW_NUMBER函數怎么用

感謝各位的閱讀!關于“SQL中ROW_NUMBER函數怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

登封市| 武强县| 新河县| 五华县| 泗水县| 抚顺县| 深水埗区| 盐津县| 齐河县| 镇坪县| 阳信县| 英吉沙县| 临高县| 安溪县| 南通市| 屯门区| 金坛市| 盈江县| 常山县| 洱源县| 黔南| 遂宁市| 板桥市| 且末县| 淮安市| 德惠市| 乡宁县| 苗栗县| 屏东市| 南岸区| 西乌珠穆沁旗| 石屏县| 天祝| 昭觉县| 吉首市| 诸城市| 东兴市| 社会| 普格县| 肃北| 江达县|