sql 取两值之间的数据方法(例:100-200之间的数据)
更新时间:2010年05月19日 00:01:31 作者:
这里只列举3种我测试的方法,还有别的方案就由高手补上了,3种方案的效率也不竞相同,我一直认为not in效率不好,但在这里使用not in速度最快,请高手补充说明,谢谢
题:取表table中100条-200条之间数据
方法1:临时表
select top 200 * into #aa from table order by time-- 将top m笔插入 临时表
set rowcount 100
select * from #aa order by time desc
--drop table #aa --删除临时表
方法2:
select top 100 * from
(select top 200 * from table order by time asc) a
order by time desc
方法3:not in
select top 100 * from v_company where (
id not in
(select top 100 id from v_company order by id asc)
) order by id asc
这里只列举3种我测试的方法,还有别的方案就由高手补上了,3种方案的效率也不竞相同,我一直认为not in效率不好,但在这里使用not in速度最快,请高手补充说明,谢谢
方法1:临时表
复制代码 代码如下:
select top 200 * into #aa from table order by time-- 将top m笔插入 临时表
set rowcount 100
select * from #aa order by time desc
--drop table #aa --删除临时表
方法2:
复制代码 代码如下:
select top 100 * from
(select top 200 * from table order by time asc) a
order by time desc
方法3:not in
复制代码 代码如下:
select top 100 * from v_company where (
id not in
(select top 100 id from v_company order by id asc)
) order by id asc
这里只列举3种我测试的方法,还有别的方案就由高手补上了,3种方案的效率也不竞相同,我一直认为not in效率不好,但在这里使用not in速度最快,请高手补充说明,谢谢
相关文章
一个删选数据的例子,使用GROUP、DISTINCT实例解析
今天遇到的问题,纠结了一上午,终于解决了。在此记录下来,自我认为还有很多类似的问题都可以套用这段代码2013-09-09
SQLServer 获得用户最新或前n条订单的几种SQL语句小结
场景:有一张用户表,一个订单表,要求获得一个用户对应的最新的一条订单信息。2011-08-08
SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案
本文主要讲述了笔者在执行sql语句的过程中,遇到提示“数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。”的解决过程,希望对大家有所帮助2014-08-08
Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
这篇文章主要介绍了Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍 的相关资料,需要的朋友可以参考下2016-05-05


最新评论