首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql分页话语写法

2013-10-07 
sql分页语句写法select top 2 * from firehonest_evaluate_activity where act_idnot in(select top 2 act

sql分页语句写法


select top 2 * from firehonest_evaluate_activity where act_id 
  not in(select top 2 act_id from firehonest_evaluate_activity order by act_id asc) order by act_id asc
这个是在整张表中分页,如果需要有条件的分页,
比如

select * from firehonest_evaluate_activity where act_name like '%li%'


那整个分页语句怎么写?怎么把表名换成下面的select 语句?
[解决办法]
select?top?2?*?from?firehonest_evaluate_activity?where?act_name like '%li%' and act_id?
??not?in(select?top?2?act_id?from?firehonest_evaluate_activity?order?by?act_id?asc)?order?by?act_id?asc
[解决办法]
1. 用 row_number()产生行号
2. 再用 between xxx  and yyy  取从哪个序号到哪个序号

[解决办法]
两种方式
1 版主的方式
2 2#的方式

第一种如果选择第几千页后速度超慢,资源消耗巨大,但是在前面的一些页时速度较快
第二种无论是哪页,资源消耗差别不大,在前一些页的查询消耗要比not in的方式差些,
但是几千几万页后优势明显,推荐第二种
[解决办法]
try this,

select top 2 * 
from firehonest_evaluate_activity 
where act_name like '%li%' and 
act_id not in
(select top 2 act_id 
 from firehonest_evaluate_activity 
 where act_name like '%li%'
 order by act_id asc) 
order by act_id asc

热点排行