2011年3月27日 星期日

取得第m到第n的資料

一.取得第m到第n的資料
前題是你一定要有一個欄位(ID)為排序用(ORDER BY)<<廢話>>

方法一
將資料讀到暫存#TMPTABLE




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


SELECT
IDENTITY(INT,1,1) AS ROWNUMBER
,*
INTO
#TMPTABLE
FROM
TABLENAME
ORDER BY
ID;
暫存TABLE完成   SELECT
*
FROM
#TMPTABLE
WHERE
ROWNUMBER BETWEEN M AND N;




註記:


第一個方法在SQL 7.0上是有問題的,因為在7.0上有時候IDENTITY會先計算但是有時候,ORDER BY會先排序...但是在SQL 2000已經將順序確定為ORDER BY>>IDENTITY!!


方法二


善用DESC與ASC











1
2
3
4
5
6
7
8
9
10
11
12
13
14


SELECT
*
FROM (
SELECT
TOP 10 *
FROM
(SELECT
TOP 30 *
FROM
dbo.JavaRanch
ORDER BY ID )AS B
ORDER BY ID DESC
) AS A
ORDER BY ID ASC







沒有留言: