Пейджинговые результаты из таблицы, имеющей varchar в качестве PK - PullRequest
1 голос
/ 20 ноября 2011

Как я могу отобразить результаты из таблицы с этой схемой?

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 ]

3 голосов
/ 20 ноября 2011

Основываясь на моем ответе на предложение в комментариях к вопросу, это должно работать для вашей таблицы.

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 голосов
/ 20 ноября 2011

Возможно, что-то в вашем операторе выбора,

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

$ curpage - текущая страница, а 10, умноженное на это, это количество записей, которое вы хотите показать на странице.

...