FETCH

Compatible desde Oracle 12c en adelante, sirve para limitar el número de filas devueltas por una consulta y hacer paginación, cumple la misma función que el LIMIT de MySQL.

Sintaxis completa

[ OFFSET offset ROWS ]
FETCH NEXT [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]Lenguaje del código: CSS (css)
1. Cláusula OFFSET (opcional)

Función:saltarse las N primeras filas, se usa para paginación.

  • Si se omite, el offset vale 0 y empieza a leer desde la primera fila
  • Offset negativo: se trata como valor 0
  • Offset con valor NULL o mayor que el total de filas: no devuelve ninguna fila
  • Offset con decimales: se corta la parte decimal y solo queda la parte entera
2. Cláusula FETCH

Función: define cuántas filas devolver, admite modo por número de filas y por porcentaje.

  • ONLY: devuelve exactamente las filas indicadas (el más utilizado)
  • WITH TIES: devuelve también registros con el mismo valor de ordenación que la última fila obtenida. Es obligatorio usarlo junto con ORDER BY

Códigos de ejemplo

Obtener las 5 primeras filas ordenadas por name de forma descendente
SELECT *
FROM student
ORDER BY name DESC
FETCH NEXT 5 ROWS ONLY;
Leer las 2 primeras filas
select * from student fetch next 2 rows only;Lenguaje del código: JavaScript (javascript)

Resultado: devuelve los dos primeros registros jim, lisa.

Paginación: saltar 3 filas, leer 4 filas (página 2, 4 elementos por página)
SELECT *
FROM student
ORDER BY id
OFFSET 3 ROWS
FETCH NEXT 4 ROWS ONLY;
Devolver por porcentaje, obtener el 10 % del total de datos
SELECT *
FROM student
FETCH NEXT 10 PERCENT ROWS ONLY;
Uso de WITH TIES (incluir registros empatados)
SELECT *
FROM student
ORDER BY score DESC
FETCH NEXT 3 ROWS WITH TIES;

Si varios registros tienen la misma puntuación que el tercer puesto, todos se devuelven, la cantidad final puede superar 3.

FETCH

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *