幾個較好的資料庫分頁過程

2021-04-07 03:12:32 字數 1841 閱讀 6820

一 oracle

create or replace procedure page(

p_num integer,

p_size integer,

condition clob,

table_name varchar,

p_rowset out sys_refcursor) as

begin

open p_rowset for

'select *

from (

select rownum r, t1.*

from (

select '|| table_name || '.* from '|| table_name || ' ' 

where rownum <= ' || p_size*p_num || ' ) t2

where t2.r > ' || p_size*(p_num-1);

end page;

二 mssql

create procedure page

@p_num int,

@p_size int,

@condition text,

@table_name nvarchar(100),

@current_page_size int as

if @p_num = 1

else

if @current_page_size != @p_size

execute('select * from(

else

begin

declare @tmp int

set @tmp = @p_size * @p_num

execute('select * from(

select top '+ @p_size +' * from(

end go

三 sybase

create procedure page

@p_num int,

@p_size int,

@condition  nvarchar(3000),

@table_name nvarchar(100),

@current_p_size int as

declare @str_p_size varchar(20),

@str_tmp varchar(20),

@str_current_p_size varchar(20),

@i_rowcount int 

begin

select @str_tmp=cast(@p_size * @p_num as varchar(20))

select @str_p_size=cast(@p_size as varchar(20))

select @str_current_p_size=cast(@current_p_size as varchar(20))

if @p_num = 1

begin

set @i_rowcount=@p_size*@p_num

set rowcount @i_rowcount

end

else

if @current_p_size != @p_size

begin

set rowcount @current_p_size

end

else

begin

set @i_rowcount=@p_size*@p_num

set rowcount @i_rowcount

end

end

資料庫端分頁儲存過程

近日專案中要用到大批量的資料分頁顯示,而vs2003中的datagrid中的分頁機制是整個的讀出資料到記憶體,再將記憶體中符合分頁條件的資料顯示到頁面,如果資料量達到一定程式會佔用大量系統資源,導致整個程式反應遲鈍。因而只好採用在資料庫端分頁的方法,每次只讀出指定的記錄數。create proced...

資料庫非儲存過程分頁

oracle中的分頁 select from select a.rownum rc from 表名 where rownum endrow a where a.rc startrow select a1.from select student.rownum rn from student a1 wh...

MSSQL MySQL 資料庫分頁 儲存過程

先看看單條 sql 語句的分頁 sql 吧。方法1 適用於 sql server 2000 2005 複製 如下 select top 頁大小 from table1 where id not in select top 頁大小 頁數 1 id frwww.cppcns.comom table1 o...

據說很快的資料庫分頁儲存過程

create procedure sqldatapaging tbname varchar 255 表名 tbfields varchar 1000 返回欄位 orderfield varchar 255 排序的欄位名 pagesize int,頁尺寸 pageindex int,頁碼 ordert...

我的sql資料庫儲存過程分頁

tag 資料庫 儲存過程 分頁sql 以前用到資料庫儲存過程分頁的時候都是用 not in 但是最近工作的時候,隨著資料庫記錄的不斷增大,發現not in的效率 真的不行 雖然都設定了索引,但是當記錄達到10w的時候就發現不行了,都是需要好幾秒鐘,受不了了 所以就想換個方法,直接找到需要的頁面的資料...