私は、次の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は、クエリが33件のレコードを返しcriterea。
- 私がstartRecord = 0とendRecord = 10を置くと、クエリは10個の最初の レコードを返します。
- 私がstartRecord = 0とendRecord = 20を置くと、クエリは20個の最初のレコードを返します。
- 私がstartRecord = 0とendRecord = 40を置くと、クエリは33レコードすべてを返します。
- 私がstartRecord = 10とendRecord = 20を置くと、クエリはレコードを返しません。
最終的な場所をWHERE ROWNUM BETEEW startRecord AND endRecord
に変更すると、同じ結果が得られます。
ここで何が起こっているのか知っている人もいますか?
ここにあなたの例は 'ROWNUM startRecord'を探しているはずです。 –
RToyo