五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

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

發(fā)布日期:2021-12-27 19:12 | 文章來源:腳本之家

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

一、 以學生表為例,在數(shù)據(jù)庫中有一個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()這個自帶的函數(shù)

因為自05之后,提供一個專門用于分頁的函數(shù),那就是ROW_NUMBER()這個函數(shù),分頁的基本語法:ROW_NUMBER() over(排序字段):可以根據(jù)指定的字段排序,對排序之后的結(jié)果集的每一行添加一個不間斷的行號,相當于連續(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的存儲過程則刪除
go
create proc usp_getPageData --創(chuàng)建名字usp_getPageData存儲過程
@toPage int=0 output, --總頁數(shù)
@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函數(shù)算出總頁數(shù)
go

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

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

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部