如何用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)。
Oracle, SQL Server, My SQL如何實現數據分頁查詢語句
Oracle, SQL Server 和MySQL的分頁SQL語句如下:Oracle:方法一:SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN = 21;方法二:SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A)WHERE RN between 21 and 40 公認第二種方法效率沒有第一種高。
原因是第二種要把子查詢執行完,而第一種方法子查詢執行到Rownum=40后就結束了。MySQL: SELECT * FROM TABLE_NAME LIMIT 10, 20 表示從第11條數據開始取20條數據返回,limit后的2個參數含義為:起點和步長,即從那條數據開始,取多少條數據,再如取前20條數據:SELECT * FROM TABLE_NAME LIMIT 0, 20 SQL Server2000: SELECT TOP @pagesize * FROM TABLE_NAME WHERE id not in (SELECT TOP @pagesize*(@page-1) id FROM TABLE_NAME ORDER BY id) ORDER BY id。
sql語句查詢加分頁
你的意思是前五行是固定的,后十行進行分頁是么,前五行固定寫死,后十行用參數或動態sql來進行分頁。例如第一頁:
select top 5 id,readcount,weight from table1 order by readcount desc
union all
select top 10,id,readcount,weight from table1 order by weight desc --這句進行動態sql或傳參數進行分頁,網上分頁的sql很多。有問題再追問。
如何使用sql語句進行分頁操作
利用SQL語句分頁要看你用的什么數據庫。
Oracle數據庫可以使用ROWNUM或row_number(),例如:Select * from (select ROWNUM rn, t.* from table t) where rn between 11 and 20;Select * from (select row_number() over (ORDER BY col1) rn, t.* from table t) where rn between 11 and 20;SQLServer數據庫可以用Top或者row_number()函數,道理同上。利用SQL分頁有局限性,就是針對不同的數據庫有不同的寫法,所以通常會在應用程序里面做分頁通用性比較強。
但是對于數據量非常龐大的應用來說,還是用SQL分頁比較適合。
SQl語句查詢排名分頁
假設成績表為score,score列為分數,stuno為學號,student表為學生信息表,sutno為學號,name為學生姓名,endNum和startNum是頁碼,需要前端傳入; SELECT * FROM (select row_.*, rownum start_rownum_ from ( sum(*) 總分, * 姓名 from score t,student t1 where *=* group by * order by * ) row_ WHERE rownum < #endNum# ) WHERE start_rownum_ >= #startNum#。
轉載請注明出處華閱文章網 » sql語句分頁查詢語句