SQL2005利用ROW_NUMBER() OVER實現(xiàn)分頁功能_Mssql數(shù)據(jù)庫教程
推薦:Win7 32/64位系統(tǒng)下安裝SQL2005和SP3補丁安裝教程[圖文]今天有網(wǎng)友問win7 64系統(tǒng)下能安裝sql2005嗎,答案是肯定了,大家可以參考下面這篇文章試試
1.首先介紹ROW_NUMBER() OVER的基本用法

2.看一下實例數(shù)據(jù)
初始化數(shù)據(jù)
create table employee (empid int ,deptid int ,salary decimal(10,2))
insert into employee values(1,10,5500.00)
insert into employee values(2,10,4500.00)
insert into employee values(3,20,1900.00)
insert into employee values(4,20,4800.00)
insert into employee values(5,40,6500.00)
insert into employee values(6,40,14500.00)
insert into employee values(7,40,44500.00)
insert into employee values(8,50,6500.00)
insert into employee values(9,50,7500.00)
數(shù)據(jù)結(jié)果顯示

根據(jù)部門分組(deptid),顯示每個部門的工資(salary)等級

這是想要得到的結(jié)果第二列根據(jù)部門進行分組,第三列工資由高到低,rank進行部門內(nèi)部的排列
3.簡單分頁實現(xiàn)
SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee
根據(jù)上面1,2兩點我們可以看出這個SQL只是按照工資降序排序后,并沒有通過PARTITION BY COLUMN進行分區(qū)(分組),然后通過row_number()從1開始,為每一條分組記錄返回一個數(shù)字。結(jié)果如下

將上面SQL返回的結(jié)果集當(dāng)作一個數(shù)據(jù)表
(SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee)as NewTable
假如我們每頁5條記錄,
那么第一頁顯示select * from (SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee ) as NewTable where rank between 1 and 5

第二頁為select * from (SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee ) as NewTable where rank between 6 and 10

當(dāng)然我們第二頁這里只有4條記錄。
分頁就這樣實現(xiàn)了,對于多表查詢進行分頁也是同樣的道理。
分享:注意:在SQL SERVER中使用NChar、NVarchar和NText前天同事在幫客戶錄數(shù)據(jù)的時候,發(fā)現(xiàn)有一個人的名字里有個(念jie,同潔)字,但用搜狗拼音和萬能五筆都打不出來,我百度了一下,找到了一篇搜狗論壇的建議帖,有人建議搜狗拼音里增加 字的輸入,下面跟帖的人貼出了這個字。 既然字已經(jīng)找到,我以為一切OK了,把它復(fù)制到
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- 淺談SQL Server中鏈接服務(wù)器將替代遠(yuǎn)程服務(wù)器
- SQL Server 索引介紹
- SQL參數(shù)化查詢的另一個理由——命中執(zhí)行計劃
- 微軟SQL Server 2008之行值構(gòu)造器
- 防范sql注入式攻擊js版本
- 如何從子表里刪除數(shù)據(jù)
- 解決SQLServer與服務(wù)器連接時出錯的方法
- SQL 2005 ERROR:3145 解決辦法(備份集中的數(shù)據(jù)庫備份與現(xiàn)有的數(shù)據(jù)庫不同)
- SQL 變更數(shù)據(jù)捕獲——跟蹤可變部分
- 淺談Linq To Sql集成數(shù)據(jù)庫語言的優(yōu)劣
猜你也喜歡看這些
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-SQL2005利用ROW_NUMBER() OVER實現(xiàn)分頁功能
。