文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>sqlserver 也可以基于伪列分页!

sqlserver 也可以基于伪列分页!

时间:2011-05-25  来源:darjuan

与oracle一样  sqlserver 2005后出现 借助函数ROW_NUMBER()伪列,可以简单的通过子查询实现数据分页

Orcale 分页可以看一下这一篇 简单搞一下 Oracle 存储过程动态SQL之获取查询分页!

先简单试一下

 SELECT * FROM 
(
SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS Row,
* from test
)
as temp where Row between 1 and 10

看来还行......

继续改写一下:

declare 
@v_index
int,
@v_size
int
begin
set @v_index = 1;
set @v_size = 10;
SELECT
* FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS Row,
* from test
)
as temp where Row
between (@v_index
-1)*@v_size+1         and (@v_index-1)*@v_size+@v_size
end;

用with 语句再进行改写一下,模仿别人写成存储过程

create procedure proc_get_test_list 
(
@p_index
int,
@p_size
int
)
as
begin

with temptb
as
(
select row_number() over (order by id desc)
as row, * from test
)

select
* from temptb where row between

(@p_index
-1)*@p_size+1 and (@p_index-1)*@p_size+@p_size

end

传说这样写 可以提升语句效率

普通查询语句在1000条的条件下,响应时间几乎忽略!

测试一下存储过程:

应该算不分上下吧...... 后面再继续研究!

相关阅读 更多 +
排行榜 更多 +
毒药轮盘手机版下载

毒药轮盘手机版下载

休闲益智 下载
剑侠情缘零b服手游下载

剑侠情缘零b服手游下载

角色扮演 下载
惊魂动物园游戏手机版下载

惊魂动物园游戏手机版下载

冒险解谜 下载