从具有varchar作为PK的表中分页结果

时间:2011-11-20 17:19:00

标签: sql oracle primary-key paging

如何从具有此架构的表中分页结果?

CREATE TABLE "MY_TABLE"
(
   "NAME" VARCHAR2(100 BYTE) NOT NULL ENABLE,
   "STATUS" VARCHAR2(20 BYTE),
   "DESCRIPTION" VARCHAR2(4000 BYTE)
   CONSTRAINT "MY_TABLE_PK" PRIMARY KEY ("NAME")
)

2 个答案:

答案 0 :(得分:3)

根据问题评论中的建议找回答案,这应该适用于您的表格。

SELECT r.Name, r.Status. r.Description
FROM
(
    SELECT t.Name, t.Status. t.Description, rownum RowNumber
    FROM
    (
        SELECT Name, Status, Description
        FROM YourTable
        ORDER BY Name ASC
    ) AS t
    WHERE rownum < (pageNumber * pageSize) + 1
) AS r
WHERE RowNumber >= ((pageNumber - 1) * pageSize) + 1

可以在AskTom.Oracle.com

上找到有关rownum的详细解释

答案 1 :(得分:0)

也许是你的select语句中的内容,

SELECT * FROM MY_TABLE ORDER BY NAME LIMIT ($curpage * 10), 10

$ curpage是当前页面,10乘以你想要显示每页的记录数。