SQL

Cómo limitar el número de filas que me regresa una consulta en SQL Server utilizando la cláusula OFFSET FETCH

Estrada Web Group
Administrador
Cómo limitar el número de filas que me regresa una consulta en SQL Server utilizando la cláusula OFFSET FETCH

limitar el resultado OFFSET y FETCH de SQL server

Las cláusulas OFFSET y FETCH se utilizan con la cláusula ORDER BY. Las cuales te permiten limitar el número de filas que devolverá una consulta.

A continuación, se ilustra la sintaxis de las cláusulas OFFSET y FETCH:

  • ORDER BY column_list [ ASC | DESC ]
  • OFFSET offset_row_count { ROW | ROWS }
  • FETCH { FIRST | NEXT } fetch_row_count { ROW | ROWS } ONLY
La sintaxis es la siguiente:
  • La cláusula OFFSET especifica el número de filas a omitir antes de comenzar a devolver filas desde la consulta. offset_row_count puede ser una constante, variable o parámetro que sea mayor o igual a cero.
  • La cláusula FETCH especifica el número de filas que se devolverán después de que se haya procesado la cláusula OFFSET . offset_row_count puede ser una constante, variable o escalar que sea mayor o igual a uno.
  • La cláusula OFFSET es obligatoria, mientras que la cláusula FETCH es opcional. Además, FIRST y NEXT son sinónimos respectivamente, por lo que puede usarlos indistintamente. Del mismo modo, puede usar FIRST y NEXT indistintamente.

A continuación se ilustran las cláusulas OFFSET y FETCH:

FIRST y NEXT sql server

Ten en cuenta que debe usar las cláusulas OFFSET y FETCH con la cláusula ORDER BY. De lo contrario, recibirás un error.

Las cláusulas OFFSET y FETCH son preferibles para implementar la solución de paginación de consultas que la cláusula TOP.

Ejemplos de OFFSET y FETCH en SQL Server

Utilizaremos una la tabla de productos de la base de datos de ejemplo que puedes descargar aquí.

tutorial sql server

La siguiente consulta devuelve todos los productos de la tabla de products y los ordena por sus precios de lista y nombres:

SELECT
    product_name,
    list_price
FROM
    production.products
ORDER BY
    list_price,
    product_name;

select top sql

Para omitir los primeros 10 productos y devolver el resto, use la cláusula OFFSET como se muestra en la siguiente declaración:

SELECT
    product_name,
    list_price
FROM
    production.products
ORDER BY
    list_price,
    product_name 
OFFSET 10 ROWS;

top 100 sql server

Para omitir los primeros 10 productos y seleccionar los siguientes 10 productos, use las cláusulas OFFSET y FETCH siguiente manera:

SELECT
    product_name,
    list_price
FROM
    production.products
ORDER BY
    list_price,
    product_name 
OFFSET 10 ROWS 
FETCH NEXT 10 ROWS ONLY;

paginar resultados sql

Para obtener los 10 productos más caros, use las cláusulas OFFSET y FETCH:

SELECT
    product_name,
    list_price
FROM
    production.products
ORDER BY
    list_price DESC,
    product_name 
OFFSET 0 ROWS 
FETCH FIRST 10 ROWS ONLY;

manual de sql server

En este ejemplo, la cláusula ORDER BY ordena los productos por sus precios de lista en orden descendente. Luego, la cláusula OFFSET omite la fila cero y la cláusula FETCH recupera los primeros 10 productos de la lista.

En este tutorial, ha aprendido a utilizar las cláusulas OFFSET FETCH SQL Server que limitan el número de filas devueltas por una consulta.

Compartir artículo:

Más artículos geniales

Qué es un trigger o desencadenador y cómo crearlo?

Qué es un trigger o desencadenador y cómo crearlo?

En este artículo veremos ¿qué es un trigger? es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.

Ver artículo completo
Introducción al curso gratuito de SQL Server

Introducción al curso gratuito de SQL Server

SQL es un lenguaje de consulta estructurado de base de datos normalizado, utilizado por algunos motores de base de datos DB2, SQL Server, Oracle, MySql, Sybase, PostgreSQL, entre otros.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;