帮忙两个存储过程:查询表中第11-20行的数据(分页)spl server 和orcle两个版本

谁帮忙写两个存储过程 急需:查询表中第11-20行的数据(分页)spl server 和orcle两个版本 谢谢

[color=red]SQLServer的 [/color]

SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID


SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID

上面第一个是用TOP与NOT IN进行分页的,第二种是利用ID和SELECT TOP分页


[color=red]Oracl的 [/color]SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)

WHERE RN >= 21

SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
)
WHERE RN BETWEEN 21 AND 40

第一种要比第二种效率高很多,Oracl分页主要就是利用ROWNUM关键字来进行分页的

希望对楼住有所帮助