从news表中查询第31至40条记录,主键为ID,ID可能不连续

Code:
  1. 取n到m行   
  2.   
  3. 1.    
  4. select top m * from tablename where id not in (select top n id from tablename order by id asc/*|desc*/)    
  5.   
  6. 2.    
  7. select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入到临时表    
  8. set rowcount n   --只取n条结果   
  9. select * from 表变量 order by columnname desc    
  10.   
  11. 3.    
  12. select top n * from     
  13. (select top m * from tablename order by columnname) a    
  14. order by columnname desc    
  15.   
  16.   
  17. 4.如果tablename里没有其他identity列,那么:    
  18. 先生成一个序列,存储在一临时表中.   
  19. select identity(int) id0,* into #temp from tablename    
  20.   
  21. 取n到m条的语句为:    
  22. select * from #temp where id0 > =n and id0  <= m    
  23.   
  24. 如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:    
  25. exec sp_dboption 你的DB名字,'select into/bulkcopy',true    
  26.   
  27.   
  28. 5.如果表里有identity属性,那么简单:    
  29. select * from tablename where identity_col between n and m     
  30.   
  31. 6.SQL2005开始.可以使用row_number() over()生成行号   
  32. ;with cte as  
  33. (   
  34.  select id0=row_number() over(order by id),* from tablename   
  35. )   
  36. select * from cte where id0 between n to m   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值