国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

解析數據庫分頁的兩種方法對比(row_number()over()和top的對比)

2020-01-18 23:34:24
字體:
來源:轉載
供稿:網友
今天,老師帶偶們復習了一下數據庫中的分頁,總體來說,今天感覺還不錯,因為以前學的還沒忘。好了,進入正題,
首先,說說top的方法
top方法其實就是將你要查的的頁數的數據前得數據去掉 再取前幾
例:
復制代碼 代碼如下:

 一頁3條數據 取第一頁的數據
-- 第一頁
       select top 3 * from T_news;
                       取第五頁的數據
--第五頁
       select  top 3 * from T_News where id not in (select top (3*4) id from T_News)      --關鍵就在于not  in上 靠他來去掉前幾頁的數據
                    如果想要自己設定每頁幾條數據和看第幾頁的話也行 就多加個存儲過程
create proc usp_fenye @geshu int,@yeshu int
as
 begin
   select top (@geshu) * from T_News where id not in (select top (@geshu*(@yeshu-1)) id from T_News)
 end

然后,我們再說說ROW_NUMBER()over()的方法
這個其實就是又給數據表加了一個列在用來確定數據是第幾條
例:
復制代碼 代碼如下:

                       一頁3條數據 取第一頁的數據
   select * from (select *,ROW_NUMBER()over(order by id asc) as number from T_News ) as tb1
     where number between 1 and 3;
第五頁的數據
 select * from (select *,ROW_NUMBER()over(order by id asc) as number from T_News ) as tb1
     where number between 3*4+1 and 3*5;
                       自己設定每頁幾條數據和看第幾頁
create proc usp_fenye @geshu int,@yeshu int
 as
   begin
     select * from (select *,ROW_NUMBER()over(order by id asc) as number from T_News ) as tb1
     where number between  @geshu*(@yeshu-1)+1 and @geshu*@yeshu;
   end

恩 就這樣 這是我的理解 希望能給看得人帶來幫助吧~
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平昌县| 和平区| 玉门市| 雷波县| 宁阳县| 进贤县| 大田县| 石渠县| 安福县| 镇安县| 灵川县| 托克逊县| 南昌市| 青冈县| 青川县| 临安市| 滨州市| 监利县| 綦江县| 东方市| 远安县| 靖宇县| 沧州市| 若尔盖县| 茂名市| 虎林市| 平安县| 洛阳市| 孟村| 黄山市| 通城县| 通道| 津南区| 九龙城区| 洮南市| 平塘县| 苍南县| 乐昌市| 乌审旗| 黑水县| 平度市|