重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
page=2'当前页
专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业二七免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
pagesize = 20'分页大小
IF page = 1 THEN
SQL = "select top " pagesize " * from YOURTABLE order by ID desc"
ELSE
SQL = "select top " pagesize " * from YOURTABLE where ID not in(select top "pagesize" ID from YOURTABLE where ext_area='欧美' and ext_type='动作' order by ID desc) and ext_area='欧美' and ext_type='动作' order by ID desc" 'where条件,里外都要加上
END IF
另外,团IDC网上有许多产品团购,便宜有口碑
sqlserver分页有四种方法,先给大家介绍一种常用的
查看1到3条数据
假如查询每页大小为3,查询第2页的数据就是
临近春节,心早已飞了不在工作上了,下面小编给大家整理些数据库的几种分页查询。
Sql
Sever
2005之前版本:
select
top
页大小
*
from
表名
where
id
not
in
(
select
top
页大小*(查询第几页-1)
id
from
表名
order
by
id
)
order
by
id
例如:
select
top
10
*
--10
为页大小
from
[TCCLine].[dbo].[CLine_CommonImage]
where
id
not
in
(
--40是这么计算出来的:10*(5-1)
--
页大小*(查询第几页-1)
select
top
40
id
from
[TCCLine].[dbo].[CLine_CommonImage]
order
by
id
)
order
by
id
结果为:
Sql
Sever
2005及以上版本,多了个分页查询方法:
/*
*
firstIndex:起始索引
*
pageSize:每页显示的数量
*
orderColumn:排序的字段名
*
SQL:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
*/
select
top
pageSize
o.*
from
(select
row_number()
over(order
by
orderColumn)
as
rownumber,*
from(SQL)
as
o
where
rownumberfirstIndex;
例如:
select
top
10
numComImg.*
from
(
select
row_number()
over(order
by
id
asc)
as
rownumber,*
from
(select
*
FROM
[TCCLine].[dbo].[CLine_CommonImage])
as
comImg)
as
numComImg
where
rownumber40
结果:
这两个方法,就仅仅是多了一列
rewnumber
吗?当然不是,来看下内部差别吧:
在两个SQL上,分别加入以下SQL,并使用MS的“包括执行计划”,便于查看执行详情:
SET
STATISTICS
TIME
ON
GO
要执行的SQL:
SET
STATISTICS
TIME
ON
GO
select
top
10
numComImg.*
from
(
select
row_number()
over(order
by
id
asc)
as
rownumber,*
from
(select
*
FROM
[TCCLine].[dbo].[CLine_CommonImage])
as
comImg)
as
numComImg
where
rownumber40
SET
STATISTICS
TIME
ON
GO
select
top
10
*
--10
为页大小
from
[TCCLine].[dbo].[CLine_CommonImage]
where
id
not
in
(
--40是这么计算出来的:10*(5-1)
--
页大小*(查询第几页-1)
select
top
40
id
from
[TCCLine].[dbo].[CLine_CommonImage]
order
by
id
)
order
by
id
执行之后,查看执行计划:
看得出,两个同样功能的SQL,执行时,使用
row_number()
的,要比是用
纯TOP方式的,查询开销少得多,上图显示
28:72,纯top方式,使用了两次聚集扫描。
再来看下执行时间信息:
row_number()方式的:
纯top方式:
相比之下,还是row_number()解析函数效率比较高写。
以上所述是小编给大家分享的SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同,希望对大家有所帮助。