分頁的兩種技巧
分頁的技巧有兩種,一種是直接透過t-sql,另一種是透過store procedure,在這post出來跟大家分享一下:
t-sql:
假設northwind有乙個customer的table,你需要取回41~50筆的記錄,t-sql語法該如何作呢?
select top 10 customerid,companyname,contactname,country from customers where customerid not in
(select top 40 customerid from customers order by country,customerid)
order by country,customerid
store procedure:
出自msdn magazine,是別人的智慧型
create procedure northwind_orderspaged
(@pageindex int,
@pagesize int)as
begin
declare @pagelowerbound int
declare @pageupperbound int
declare @rowstoreturn int
-- first set the rowcount
set @rowstoreturn = @pagesize * (@pageindex + 1)
set rowcount @rowstoreturn
-- set the page bounds
set @pagelowerbound = @pagesize * @pageindex
set @pageupperbound = @pagelowerbound + @pagesize + 1
-- create a temp table to store the select results
create table #pageindex
(indexid int identity (1, 1) not null,
orderid int
)-- insert into the temp table
insert into #pageindex (orderid)
select
orderid
from
orders
order by
orderid desc
-- return total count
select count(orderid) from orders
-- return paged results
select
o.*from
orders o,
#pageindex pageindex
where
o.orderid = pageindex.orderid and
pageindex.indexid > @pagelowerbound and
pageindex.indexid < @pageupperbound
order by
pageindex.indexid
end
MS SQL 兩種分頁
row number row number declare pagesize int,pageindex intset pagesize 20 set pageindex 2 select from select row number over order by byod zzfp.id desc ...
java分頁的兩種方式
方式其實都非常的簡單,一種是資料庫分頁用limit限制取出條數,一種是在業務邏輯裡面分頁,我用的是jdbc,所以每次游標指定到一定的條數進行展示。因為只是簡單的進行原理學習,所以並沒有對 方面對嚴格的書寫,明白原理就好。主要的地方就是在進行資料庫查詢的時候,假設有一張表flownode,sql語句如...
lucene的兩種分頁操作
基於lucene的分頁有兩種 lucene3.5之前分頁提供的方式為再查詢方式 每次查詢全部記錄,然後取其中部分記錄,這種方式用的最多 lucene官方的解釋 由於我們的速度足夠快。處理海量資料時,記憶體容易記憶體溢位。這就是先查詢所有的資料,然後去分頁資料 注意 這種方式處理海量資料的時候,容易記...