濮阳杆衣贸易有限公司

主頁 > 知識庫 > SQL Server兩種分頁的存儲過程使用介紹

SQL Server兩種分頁的存儲過程使用介紹

熱門標簽:智能語音車載電話機器人 智能外呼系統(tǒng)需要多少錢 外呼系統(tǒng)的話術 安陽天音防封電銷卡 衛(wèi)星地圖標注距離 陽光創(chuàng)信ai外呼獲客系統(tǒng)助力 貴州外呼回撥系統(tǒng)是什么 競圣地圖標注服務 云南全自動外呼系統(tǒng)公司

由于現在很多的企業(yè)招聘的筆試都會讓來招聘的寫一個分頁的存儲過程,有的企業(yè)甚至要求應聘者用兩種方式實現分頁,如果沒有在實際項目中使用過分頁,那么很多的應聘者都會出現一定的問題,下面介紹兩種分頁的方法。

一、 以學生表為例,在數據庫中有一個Student表,字段有StudentNo, ,LoginPwd, StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel

要求:查詢學生的信息,每頁顯示5條記錄

二、第一種方式分頁:利用子查詢 not in

例如:

第一頁

select top 5 * from Student

第二頁: 查詢前10條中不在前5條的記錄,那么就是6-10,也就是第二頁

select top 5 * from Student where StudentNo not in(select top 10 Studentno from Student)

同理可以得到第三頁、、、、、、、

這種方式相信大家都能明白,這種分頁的存儲過程寫法就不多做介紹,重點介紹下面那種分頁方法。

三、第二種方式分頁:利用ROW_NUMBER()這個自帶的函數

因為自05之后,提供一個專門用于分頁的函數,那就是ROW_NUMBER()這個函數,分頁的基本語法:ROW_NUMBER() over(排序字段):可以根據指定的字段排序,對排序之后的結果集的每一行添加一個不間斷的行號,相當于連續(xù)的id值一樣,

例如sql語句:select ROW_NUMBER() over(order by studentno) id, * from Student 那么結果集可以看到:

那么我們可以看到id值是連續(xù)的,所有接下來的存儲過程寫起來就比較簡單了。

注意:我們必須為這個結果集命一個新名字,比如我們命名為temp,那么分頁存儲過程可以寫出:

if exists( select * from sysobjects where name='usp_getPageData')
drop proc usp_getPageData --如果存在名字為usp_getPageData的存儲過程則刪除
go
create proc usp_getPageData --創(chuàng)建名字usp_getPageData存儲過程
@toPage int=0 output, --總頁數
@pageIndex int =1 , --默認顯示第一頁
@pageCount int =5 --默認每頁的記錄為5條
as
select temp.StudentNo,temp.LoginPwd,temp.StudentName,temp.Sex,temp.ClassId,temp.Phone,temp.Address,temp.BornDate,temp.Email,temp.isDel from
(select ROW_NUMBER() over (Order by studentno) id,* from Student) temp
where id>(@pageIndex-1)*@pageCount and id=@pageIndex*@pageCount

set @toPage=ceiling((select COUNT(*) from Student)*1.0/@pageCount) --使用ceiling函數算出總頁數
go

說明因為在實際的項目的開發(fā)中,經常要顯示總頁數給用戶看的,所有這里的存儲過程增加了一個toPage參數,由于它是要輸出給用戶看的,所有參數類型定義為output,并用set進行賦值。

以上是對兩種分頁方法的介紹,如果有任何疑問或不懂的可以留言給我。

您可能感興趣的文章:
  • sql2005 存儲過程分頁代碼
  • sqlserver 千萬數量級分頁存儲過程代碼
  • sql 存儲過程分頁代碼 支持億萬龐大數據量
  • SQL Server 2005通用分頁存儲過程及多表聯(lián)接應用
  • mssql 高效的分頁存儲過程分享
  • 基于Sql Server通用分頁存儲過程的解決方法
  • 深入sql server 2005 萬能分頁存儲過程的詳解
  • SQL Server 分頁查詢通用存儲過程(只做分頁查詢用)
  • SqlServer 2000、2005分頁存儲過程整理
  • 實現SQL分頁的存儲過程代碼

標簽:營口 周口 寧夏 河源 欽州 預約服務 鄂爾多斯 湘潭

巨人網絡通訊聲明:本文標題《SQL Server兩種分頁的存儲過程使用介紹》,本文關鍵詞  SQL,Server,兩種,分頁,的,存儲,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server兩種分頁的存儲過程使用介紹》相關的同類信息!
  • 本頁收集關于SQL Server兩種分頁的存儲過程使用介紹的相關信息資訊供網民參考!
  • 推薦文章
    富蕴县| 博乐市| 铜陵市| 泊头市| 宁都县| 武功县| 东方市| 微山县| 四平市| 南丹县| 无为县| 杂多县| 桐城市| 大厂| 淄博市| 淅川县| 义乌市| 五寨县| 钦州市| 青海省| 叶城县| 德格县| 濮阳市| 葫芦岛市| 澄迈县| 鄂托克前旗| 合作市| 都江堰市| 武威市| 江源县| 余姚市| 洞头县| 于田县| 阿克苏市| 石首市| 临夏县| 延长县| 台东市| 文安县| 南安市| 恩施市|