Scripts 学盟

标题: SQL SERVER取第几行到第几行的方法 [打印本页]

作者: 俊俊    时间: 2012-10-11 15:48:13     标题: SQL SERVER取第几行到第几行的方法


------------------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 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

作者: 混混@普宁.中国    时间: 2012-10-11 21:44:45

有 row_numer() 真是爽歪歪呀
作者: 俊俊    时间: 2012-10-18 11:32:13

混混@普宁.中国 发表于 2012-10-11 21:44
有 row_numer() 真是爽歪歪呀

科技,以人为本!




欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2