--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+ 取第几行到第几行的方法
本文介绍在SQL Server 2000及2005+环境中实现特定行区间数据检索的三种方法,包括使用子查询、临时表及窗口函数等技术手段,并对比了不同方法的执行效率。
266

被折叠的 条评论
为什么被折叠?



