--SQL SERVER 2000 取第几行到第几行的方法
--(第一种方法) 效率最差
select top 5 * from customers where
CustomerID not in (select top 5 CustomerID from customers)
--(第二种方法) 效率最好, 这里先执行的是Order by 然后才执行Top
select b.* from
(
select top 5 a.* from
(
select top 10 * from customers order by CustomerID asc
) a order by a.CustomerID desc
) b
order by b.CustomerID
--(第三种方法) 利用临时表和identity(int,1,1
DROP TABLE #temp
select identity(int,1,1) as rowID,* into #temp from customers
SELECT * FROM #temp WHERE rowID>5 AND rowID<=10
--SQL SERVER 2000 取第几行到第几行的方法
--SQL SERVER 2005+ 取第几行到第几行的方法
SELECT b.* FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY c.customerid) rowIndex,* FROM Customers c
) b
WHERE b.rowIndex>5 AND b.rowindex<=10
--SQL SERVER 2005+ 取第几行到第几行的方法