ORACLE中查询第n条到第m条的数据记录的方法
2013-01-10 10:28
344 查看
一、经过测试,下面的方法通过:
SELECT * FROM
(
SELECT 表名.*, ROWNUM AS CON FROM 表名 WHERE ROWNUM <= M AND 其它查询条件 ORDER BY 排序条件
)
WHERE CON >=N;
二、参考其它网上的方法
SQL/Oracle取出第 m 条到第 n 条记录的方法
用一句SQL取出第 m 条到第 n 条记录的方法
用一句SQL取出第 m 条到第 n 条记录的方法
从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)
SELECT TOP n-m+1 *
FROM Table
WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))
--从TABLE表中取出第m到n条记录 (Exists版本)
SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists
(Select * From (Select Top m-1 * From TABLE order by id) b Where b.id=a.id )
Order by id
--m为上标,n为下标,例如取出第8到12条记录,m=8,n=12,Table为表名
Select Top n-m+1 * From Table
Where Id>(Select Max(Id) From
(Select Top m-1 Id From Table Order By Id Asc) Temp)
Order By Id Asc
#1楼 [楼主] 2007-03-02 10:38 Athrun
直接取得数据库中的分页记录
前提是表中必须有主键
取得第M条记录之后的N条记录:
SELECT TOP N *
FROMWHERE (ID NOT INORDER BY [ORDER]))ORDER BY [ORDER]
SELECT * FROM
(
SELECT 表名.*, ROWNUM AS CON FROM 表名 WHERE ROWNUM <= M AND 其它查询条件 ORDER BY 排序条件
)
WHERE CON >=N;
二、参考其它网上的方法
SQL/Oracle取出第 m 条到第 n 条记录的方法
用一句SQL取出第 m 条到第 n 条记录的方法
用一句SQL取出第 m 条到第 n 条记录的方法
从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)
SELECT TOP n-m+1 *
FROM Table
WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))
--从TABLE表中取出第m到n条记录 (Exists版本)
SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists
(Select * From (Select Top m-1 * From TABLE order by id) b Where b.id=a.id )
Order by id
--m为上标,n为下标,例如取出第8到12条记录,m=8,n=12,Table为表名
Select Top n-m+1 * From Table
Where Id>(Select Max(Id) From
(Select Top m-1 Id From Table Order By Id Asc) Temp)
Order By Id Asc
#1楼 [楼主] 2007-03-02 10:38 Athrun
直接取得数据库中的分页记录
前提是表中必须有主键
取得第M条记录之后的N条记录:
SELECT TOP N *
FROM