如何用sql語句 實現分頁查詢
方法1:
適用于 SQL Server 2000/2005
SELECT TOP 頁大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id
)
ORDER BY id
方法2:
適用于 SQL Server 2000/2005
SELECT TOP 頁大小 *
FROM table1
WHERE id >
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id
) A
)
ORDER BY id
方法3:
適用于 SQL Server 2005
SELECT TOP 頁大小 *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
) A
WHERE RowNumber >頁大小*(頁數-1)
SQL Server數據庫用sql語句實現分頁查詢 (從M條數據開始,查找N條
create table t1(id int identity primary key,name varchar(16))declare i intset i = 0while(i<30)begin insert into ti values ('name'+i)set i=i+1end-------------------------------例如m=5,N=10select top 10 * from ti where id not in (select top 5 id from ti)。
分頁查詢的sql 語句(參數1,參數2)
你說的應該是 利用SQL的游標存儲過程 來分頁的形式代碼如下:create procedure fenye@sqlstr nvarchar(4000), --查詢字符串 @currentpage int, --第N頁 @pagesize int --每頁行數 as set nocount on declare @P1 int, --P1是游標的id @rowcount int exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output select ceiling(1.0*@rowcount/@pagesize) as 總頁數--,@rowcount as 總行數,@currentpage as 當前頁 set @currentpage=(@currentpage-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@currentpage,@pagesize exec sp_cursorclose @P1 set nocount off 不過這個種存儲過程分頁的方法效率比較差建議你直接用代碼進行分頁或者 利用SELECT TOP分頁代碼:select top 10 * from [order details] where orderid>all(select top 10 orderid from [order details] order by orderid) order by orderid。
sql分頁查詢語句 首頁,上一頁怎么實現
--假如每頁顯示條數據10條
--哪么第一頁1~10 第二頁11~20 即起始行數=10*(頁數-1)+1,結束行=頁數*10
declare @start int
declare @end int
set @start=8
set @end=18
select * from(
select P_ID,P_ClassName, ROW_NUMBER() OVER(order by P_ID) as row from
*_Position)as a
where row between @start and @end--太酷了,這樣一個分頁就搞定了。還可以這樣變化,可選參數只是[頁的大小]
declare @pagesize int
declare @start int
declare @end int
declare @pagecount int
set @pagecount=2
set @pagesize=10
set @start=(@pagesize*(@pagecount-1)+1)
set @end=@pagecount*@pagesize
select * from(
select P_ID,P_ClassName, ROW_NUMBER() OVER(order by P_ID) as row from
*_Position)as a
where row between @start and @end這是前幾年的一個博文摘錄,希望對你用!
關于SQl語句分頁問題數據是SQlserver2008有一個表為
這個是你想要的嗎? SELECT top 2 * FROM (select * from AlertmessageLogas A where id=(select max(id) from AlertmessageLog where AlertmessageLog=*essageLog)) AS A WHERE id NOT IN ( SELECT top (2*2) id FROM (select * from AlertmessageLogas A where id=(select max(id) from AlertmessageLog where AlertmessageLog=*essageLog)) as A) 你要查看的當前頁,索引乘每頁顯示多少數據就可得出你要查看的那一頁內容。