當前位置:首頁 » 操作系統 » 資料庫分頁查詢

資料庫分頁查詢

發布時間: 2022-01-25 13:54:17

1. sql Server 分頁 查詢語句

四種方式實現SQLServer 分頁查詢
SQLServer 的數據分頁:
假設現在有這樣的一張表:
CREATE TABLE test
(
id int primary key not null identity,
names varchar(20)
)
然後向裡面插入大約1000條數據,進行分頁測試
假設頁數是10,現在要拿出第5頁的內容,查詢語句如下:
--10代表分頁的大小
select top 10 *
from test
where id not in
(
--40是這么計算出來的:10*(5-1)
select top 40 id from test order by id
)
order by id
原理:需要拿出資料庫的第5頁,就是40-50條記錄。首先拿出資料庫中的前40條記錄的id值,然後再拿出剩餘部分的前10條元素

第二種方法:
還是以上面的結果為例,採用另外的一種方法
--數據的意思和上面提及的一樣
select top 10 *
from test
where id >
(
select isnull(max(id),0)
from
(
select top 40 id from test order by id
) A
)
order by id
原理:先查詢前40條記錄,然後獲得其最id值,如果id值為null的,那麼就返回0
然後查詢id值大於前40條記錄的最大id值的記錄。
這個查詢有一個條件,就是id必須是int類型的。

第三種方法:
select top 10 *
from
(
select row_number() over(order by id) as rownumber,* from test
) A
where rownumber > 40
原理:先把表中的所有數據都按照一個rowNumber進行排序,然後查詢rownuber大於40的前十條記錄
這種方法和oracle中的一種分頁方式類似,不過只支持2005版本以上的
第四種:
存儲過程查詢
創建存儲過程
alter procere pageDemo
@pageSize int,
@page int
AS
declare @temp int
set @temp=@pageSize*(@page - 1)
begin
select top (select @pageSize) * from test where id not in (select top (select @temp) id from test) order by id
end
執行存儲過程
exec 10,5

2. Access資料庫分頁查詢,效率sql語句

in的效率太低,不能利用索引,建議使用:
select top 每頁數量 * from 表 where id >(select top 1 max(id) from (select top (頁數-1)*每頁數量 from 表 order by id,name)) 或
select top 每頁數量 * from 表 where id <(此處根據順序和逆序)

3. oracle資料庫分頁查詢,

ROWNUM是偽列,只能<=,不能>=
所以需要給ROWNUM起個別名,變成邏輯列後來比較
select *
from (select rownum as num,a.* from (select * from test order by 1 asc) a) t
where t.num>=20
and t.num<=40;
你寫的可以修改為:
select *
from (select ROWNUM as num,A.* from (select * from test) A where rownum <= 40)
where num >= 20;

4. 資料庫 分頁是什麼意思

資料庫分頁也是在資料庫里寫查詢語句,不同的是查詢的都是指定條數到指定條數的數據,不是一次性把數據全查出來。

5. 資料庫表裡如果數據行數很多,做分頁查詢,SQL如何書寫

mysql用limit start,rows
sqlite 用 limit rows offset start
其他的也差不多 比較惡心的就是oracle和sqlserver 要嵌套查詢

6. 資料庫SQL查詢分頁問題

with pagnation as
(
select pk_psn,psnname,age row_number() over(order by age) as rowNum
from 表名
)
select top 10 * from pagnation where rowNum>10*(page-1) --表示10你每頁顯示條數,page你的頁數
你可以參考一下
http://hi..com/haifeng_4216/blog/item/515711f933c3cd50242df228.html
http://hi..com/haifeng_4216/blog/item/e0a6512577d24d6e35a80f2e.html

7. MySql中查詢語句實現分頁功能

pageNow代表當前頁面,第一頁。

8. 怎樣實現資料庫的分頁查詢

針對查詢語句做處理,同時對請求頁面地址做分析
list.aspx?pageid=5 //表示訪問第五頁
後台語言里,先對查詢條件做預處理
pagepre=pagesize*4 //pagesize 用於表示分頁大小,例如10,則前4頁共有40條記錄
查詢語句
sqlcmd="select top "+pagesize+" from tabelname where id not in (select top "+pagepre+" from tablename order by id desc)"
操作原理為將當前頁前顯示的所有記錄從數據查詢結果中排除,也就是not in 後面的部分,然後從剩餘的結果沖,讀取pagesize大小的記錄值。篩選條件、排序條件放在子查詢中

9. 如何用sql語句 實現分頁查詢

適用於 SQL Server 2000/2005

SELECT TOP 頁大小 *

FROM table1

WHERE id NOT IN

SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id

10. sql 分頁查詢 資料庫高手請進

請樓主在前台語言中實現。

熱點內容
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:742
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:171
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554