SQL Server Offset para obtener

SQL Server Offset para obtener
Este artículo le enseñará cómo usar la cláusula de búsqueda de compensación en SQL Server. La cláusula de búsqueda de compensación en SQL Server le permite establecer el límite para el número de filas devueltas de un determinado. Es muy similar a la cláusula de límite en otras bases de datos como PostgreSQL y MySQL. Es bueno tener en cuenta que la cláusula de búsqueda de compensación se combina con el orden por cláusula.

Sintaxis de cláusula

A continuación se muestra la sintaxis de la cláusula de búsqueda de compensación según la orden por declaración:

Orden por column_list [ASC | Desc]
Offset offset_row_count fila | Filas
Buscar primero | Siguiente fetch_row_count fila | Filas solamente

Los parámetros se describen a continuación:

  • Offset: esto determina el número de filas para omitir antes de devolver el resultado de la consulta. El valor puede ser constante, una variable definida por el usuario o una expresión que devuelve un valor único. Debe ser mayor o igual a cero.
  • Obtener la cláusula de búsqueda le permite especificar el número de filas que desea devolver después del valor de compensación. Este valor debe ser mayor que 1.

La cláusula de búsqueda de compensación se combina con la orden por cláusula. Por lo tanto, intentar usarlos como consultas independientes dará como resultado un error.

Ilustración de ejemplo

Ilustremos cómo podemos trabajar con la cláusula de búsqueda de compensación en SQL Server. Por ejemplo, supongamos que tenemos una tabla proporcionada en la consulta a continuación:

Drop Base de datos si existe el inventario;
Crear inventario de base de datos;
Usar inventario;
Tabla de caída si existe productos;
Crear productos de mesa
(
ID int identidad clave primaria no nula,
Product_Name Varchar (100),
Fabricante Varchar (50),
cantidad int no nulo,
precio int predeterminado 0,
en_stock bit
);
Insertar en productos (Product_Name, fabricante, cantidad, precio, in_stock)
Valores ('Apple iPad Air - 2022', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4 - 2022', 'Samsung', 302, 1569.00, 1),
('Sony PlayStation 5 - 2020', 'Sony', 500, 499.99, 1),
('Samsung Galaxy Watch -5 Pro - 2022', 'Samsung', 600, 209 / .99, 1),
('Apple Watch Series 6 - 2022', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro - 2022', 'Apple', 200, 199.99, 1),
('55 "Clase S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
('Pantalla de juegos curvos de Mini -Led Led de Odyssey Ark Quantum - 2021', 'Samsung', 50, 2999.90, 1);

Tabla resultante:

Comencemos ordenando las filas en la tabla por el fabricante:

Seleccionar * del pedido de productos por fabricante;

La tabla resultante es como se muestra:

Podemos omitir las primeras tres filas como se muestra en la consulta a continuación:

Seleccione Product_Name, fabricante, cantidad, precio, in_stock
de productos
pedido por el fabricante
compensación 3 filas;

En este caso, la consulta debe ordenar la tabla por el fabricante, omitir las primeras tres filas y devolver el resto de la mesa.

Una salida de ejemplo es como se muestra:

Como puede ver, las filas que contienen 'Apple' como el fabricante se excluyen del resultado.

Podemos excluir la última fila devolviendo solo las siguientes tres columnas después del desplazamiento. Una consulta de ejemplo es como se muestra:

Seleccione Product_Name, fabricante, cantidad, precio, in_stock
de productos
pedido por el fabricante
compensación de 3 filas
Obtenga las siguientes 3 filas solamente;

En este caso, omitimos las primeras tres columnas y obtenemos las siguientes tres columnas del resultado. La tabla de salida es como se muestra:

Conclusión

En esta publicación, discutimos utilizando la cláusula de búsqueda de compensación en SQL Server. Esta función le permite omitir y limitar el número de filas de una consulta dada.