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

问题描述 投票:0回答:2

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

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")
)
sql pagination primary-key oracle-database
2个回答
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

有关 rownum 功能的详细解释可以在 AskTom.Oracle.com

上找到

0
投票

也许你的选择语句中有一些东西,

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

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

© www.soinside.com 2019 - 2024. All rights reserved.