本篇文章為大家展示了SQL Server中怎么使用分頁的存儲過程,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計服務(wù)團(tuán)隊是一支充滿著熱情的團(tuán)隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)把每個網(wǎng)站當(dāng)做一個產(chǎn)品來開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
一、 以學(xué)生表為例,在數(shù)據(jù)庫中有一個Student表,字段有StudentNo, ,LoginPwd, StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel
要求:查詢學(xué)生的信息,每頁顯示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()這個自帶的函數(shù)
因為自05之后,提供一個專門用于分頁的函數(shù),那就是ROW_NUMBER()這個函數(shù),分頁的基本語法:ROW_NUMBER() over(排序字段):可以根據(jù)指定的字段排序,對排序之后的結(jié)果集的每一行添加一個不間斷的行號,相當(dāng)于連續(xù)的id值一樣,
例如sql語句:select ROW_NUMBER() over(order by studentno) id, * from Student 那么結(jié)果集可以看到:
那么我們可以看到id值是連續(xù)的,所有接下來的存儲過程寫起來就比較簡單了。
注意:我們必須為這個結(jié)果集命一個新名字,比如我們命名為temp,那么分頁存儲過程可以寫出:
if exists( select * from sysobjects where name='usp_getPageData')drop proc usp_getPageData --如果存在名字為usp_getPageData的存儲過程則刪除gocreate proc usp_getPageData --創(chuàng)建名字usp_getPageData存儲過程@toPage int=0 output, --總頁數(shù)@pageIndex int =1 , --默認(rèn)顯示第一頁@pageCount int =5 --默認(rèn)每頁的記錄為5條asselect 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) tempwhere id>(@pageIndex-1)*@pageCount and id<=@pageIndex*@pageCountset @toPage=ceiling((select COUNT(*) from Student)*1.0/@pageCount) --使用ceiling函數(shù)算出總頁數(shù)go
說明因為在實際的項目的開發(fā)中,經(jīng)常要顯示總頁數(shù)給用戶看的,所有這里的存儲過程增加了一個toPage參數(shù),由于它是要輸出給用戶看的,所有參數(shù)類型定義為output,并用set進(jìn)行賦值。
上述內(nèi)容就是SQL Server中怎么使用分頁的存儲過程,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:SQLServer中怎么使用分頁的存儲過程
文章源于:http://muchs.cn/article24/jpddje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化、響應(yīng)式網(wǎng)站、、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)