用存储过程实现取出从第n1条到第n2条中的记录

 取出从第n1条到第n2条中的记录  
   
  如果有关键:  
  select   *     from   (select   top   n2   *     from   表   )   a  
  where   关键字段   not   in(select   top   n1     关键字段   from   表) 

 

用存储过程实现1:

create proc test
@N1 INT,
@N2 INT
as

--如果没有自增ID

select * ,identity(int,1,1) id1 into #temp from yourtb

select * from #temp where id1 between @N1 and @N2

drop table #temp

 

用存储过程实现2:
if object_id('up_select_top_n_m') is not null  
  drop  proc up_select_top_n_m
go      
create proc up_select_top_n_m  @n1 int,@n2 int  
as    
declare   @sql   varchar(1000)  
set @sql='SELECT   TOP '+cast(@n2-@n1 as varchar)+'   *  
FROM tb  
WHERE id in(SELECT TOP  '+cast(@n2 as varchar)+' id  
             FROM tb
               ORDER BY id)
ORDER BY id DESC'  
exec(@sql)  
go  
   
--调用实例  
 exec   up_select_top_n_m   n1,n2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值