我有以下SQL結構:SQL查詢分頁
SELECT * FROM (
SELECT subquery.* FROM (
SELECT some_columns
FROM some_tables
WHERE junctions_critereas
GROUP BY some_columns
UNION
SELECT some_columns
FROM some_tables
WHERE junctions_critereas
GROUP BY some_columns) subquery
GROUP BY some_columns)
WHERE ROWNUM > startRecord AND ROWNUM <= endRecord;
- 如果我排除ROWNUM criterea查詢將返回33條記錄。
- 如果我把startRecord = 0和endRecord = 10,查詢返回10個第一個 記錄。
- 如果我把startRecord = 0和endRecord = 20查詢返回20個第一個記錄。
- 如果我把startRecord = 0和endRecord = 40,查詢返回所有33條記錄。
- 如果我把startRecord = 10和endRecord = 20查詢返回沒有記錄。
如果我將最終的WHERE更改爲WHERE ROWNUM BETEEW startRecord AND endRecord
,我得到了相同的結果。
有人知道這裏發生了什麼?
你的例子有'ROWNUM startRecord' –
RToyo