sqlserver中如何选取查询结果的中间某10条?

用top关键字可以实现取查询结果的前n条
如果我要从第11条记录起,取查询结果的10条,即是说取11-20条记录
这个查询又怎么写呢?谢谢
---------------------------------------------------------------

select itendity(int,1,1) as id, * into newtable from youtable
go
select * from newtable where id >= 11 and id <= 20
该方法不太实用,耗时多,效率低,而且如果原表中有identity列就不行了
---------------------------------------------------------------

找到一个字段用来排序,
select top 10 from
(select top 20 * from T order by f) T1
order by f desc
该方法比较巧妙,对于排序的情况很实用
---------------------------------------------------------------

排序的结果有了变化,如保持原样,有一唯一的ID

可以这样10~~20

select top 10 * from t1
where ID not in (select top 10 ID from t1)
-------------------------------
MySql中可以在select语句中用limit关键字来选取中间结果,看来
在MsSql中要花点功夫才行

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus