OFFSET y FETCH permiten recuperar datos en porciones. Especifican un bloque de filas que se desea obtener con una sola consulta.
offset_row_count o fetch_row_count puede ser un número o una constante literal. Puede omitir fetch_row_count; de forma predeterminada, es igual a 1.
OFFSET especifica cuántas filas se omiten antes de empezar a devolver filas del conjunto de resultados de la consulta. OFFSET n omite las primeras n filas del resultado.
Se admite OFFSET negativo: OFFSET -n omite las últimas n filas del resultado.
También se admite OFFSET fraccional: OFFSET n: si 0 < n < 1, se omite el primer n * 100% del resultado.
Ejemplo:
• OFFSET 0.1: omite el primer 10% del resultado.
Nota • La fracción debe ser un número Float64 menor que 1 y mayor que cero. • Si el cálculo da como resultado un número fraccional de filas, se redondea hacia arriba al siguiente número entero.
FETCH especifica el número máximo de filas que puede haber en el resultado de una consulta.
La opción ONLY se usa para devolver las filas que siguen inmediatamente a las omitidas por OFFSET. En este caso, FETCH es una alternativa a la cláusula LIMIT. Por ejemplo, la siguiente consulta
WITH TIES se usa para devolver también las filas adicionales que empaten en la última posición del conjunto de resultados según la cláusula ORDER BY. Por ejemplo, si fetch_row_count se establece en 5, pero dos filas adicionales coinciden con los valores de las columnas de ORDER BY de la quinta fila, el conjunto de resultados contendrá siete filas.
Según el estándar, la cláusula
OFFSET debe ir antes de la cláusula FETCH si ambas están presentes.El
offset real también puede depender de la configuración offset.Ejemplos
ONLY:
Query
Response
WITH TIES:
Query
Response