sql server 2008 top可以取值的中间吗?
发布网友
发布时间:2022-04-11 16:39
我来回答
共3个回答
热心网友
时间:2022-04-11 18:08
从SQLServer 2005开始就支持ROW_NUMBER()函数
用法如下
WITH TEMP AS
(
SELECT *,ROW_NUMBER() OVER(ORDER BY Id) AS RID
FROM 表
)
SELECT *
FROM TEMP
WHERE RID BETWEEN 100 AND 200;
这个查询里假设表有一个id列,用id列来排序,确定结果集的顺序,当然可以换成其它1个或多个列来确定排序的顺序,按排序的顺序会生成一个从1开始的自增序列,在SELECT的时候按需要取序列的某段值就行了。 至于WITH的用法就不多说了,这也是从SQL Server 2005开始增加的公用表表达式。
热心网友
时间:2022-04-11 19:26
select identity(int,1,1) as tid,* into #temp from [表名];
select top 200 * from #temp where tid not in(select top 100 tid from #temp)
drop table #temp
热心网友
时间:2022-04-11 21:01
select top 100 * from (select top 200 * from table )order by desc