Las cláusulas OFFSET y FETCH se utilizan junto con las cláusulas SELECT y ORDER BY para proporcionar un medio para recuperar un rango de registros.

OFFSET

El argumento OFFSET se utiliza para identificar el punto de partida para devolver filas de un conjunto de resultados. Básicamente, excluye el primer conjunto de registros.
Nota:

  • OFFSET sólo puede utilizarse con la cláusula ORDER BY. No se puede utilizar por sí solo.
  • El valor de OFFSET debe ser mayor o igual a cero. No puede ser negativo, de lo contrario devolverá un error.

Sintaxis:

SELECT column_name(s)FROM table_nameWHERE conditionORDER BY column_nameOFFSET rows_to_skip ROWS;

Ejemplos:
Considere la siguiente tabla de Empleados,

  • Imprima Fname, Lname de todos los Empleados excepto el que tenga el salario más bajo.
    SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 1 ROWS;

    Salida:

FETCH

El argumento FETCH se utiliza para devolver un conjunto de número de filas. FETCH no se puede utilizar por sí mismo, se utiliza en conjunción con OFFSET.
Sintaxis:

SELECT column_name(s)FROM table_nameORDER BY column_nameOFFSET rows_to_skipFETCH NEXT number_of_rows ROWS ONLY;

Ejemplo:

  • Imprime el Fname, Lname de la 3ª a la 6ª tupla de la tabla de Empleados cuando se ordena según el Salario.
    SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 2 ROWSFETCH NEXT 4 ROWS ONLY;

    Salida:

  • Imprime las 2 últimas tuplas de la tabla Empleado cuando se ordenan según el Salario.
    SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET (SELECT COUNT(*) FROM EMPLOYEE) - 2 ROWSFETCH NEXT 2 ROWS;

    Salida:

Puntos importantes:

  1. La cláusula OFFSET es obligatoria con FETCH. Nunca se puede utilizar, ORDER BY … FETCH.
  2. TOP no puede combinarse con OFFSET y FETCH.
  3. La expresión de recuento de filas OFFSET/FETCH sólo puede ser cualquier expresión aritmética, constante o parámetro que devuelva un valor entero.
  4. ORDER BY es obligatorio para ser utilizado con la cláusula OFFSET y FETCH.
  5. El valor de OFFSET debe ser mayor o igual a cero. No puede ser negativo, de lo contrario devuelve error.

Este artículo ha sido escrito por Anuj Chauhan. Si te gusta GeeksforGeeks y quieres contribuir, también puedes escribir un artículo en contribute.geeksforgeeks.org o enviarlo por correo a [email protected]. Verás tu artículo en la página principal de GeeksforGeeks y ayudarás a otros Geeks.

admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

lg