SQL Server Offset Fetch

SQL Server Offset Fetch
Cet article vous apprendra à utiliser la clause de fetch offset dans SQL Server. La clause de fetch offset dans SQL Server vous permet de définir la limite du nombre de lignes renvoyées à partir d'un. Il est étroitement similaire à la clause limite dans d'autres bases de données telles que PostgreSQL et MySQL. Il est bon de garder à l'esprit que la clause de fetch offset est associée à la clause Order Order by.

Syntaxe de la clause

Ce qui suit montre la syntaxe de la clause de fetch offset telle qu'elle est appariée par l'ordre par déclaration:

Ordre par Column_list [ASC | DESC]
Offset offset_row_count row | LIGNES
Fetch premier | Suivant fetch_row_count row | Lignes seulement

Les paramètres sont décrits ci-dessous:

  • Offset - Cela détermine le nombre de lignes à sauter avant de retourner le résultat de la requête. La valeur peut être constante, une variable définie par l'utilisateur ou une expression qui renvoie une seule valeur. Il doit être supérieur ou égal à zéro.
  • Fetch - La clause Fetch vous permet de spécifier le nombre de lignes que vous souhaitez retourner après la valeur de décalage. Cette valeur doit être supérieure à 1.

La clause de fetch offset est associée à la clause Order Order by. Par conséquent, tenter de les utiliser comme des requêtes autonomes entraînera une erreur.

Exemple d'illustration

Illustrons comment nous pouvons travailler avec la clause de fetch offset dans SQL Server. Par exemple, supposons que nous ayons un tableau fourni dans la requête ci-dessous:

Drop Base de données s'il existe un inventaire;
Créer l'inventaire de la base de données;
Utiliser l'inventaire;
Table de dépôt si existe des produits;
Créer des produits de table
(
id int identité clé primaire pas nul,
Product_name Varchar (100),
Fabricant Varchar (50),
Quantité int null,
prix int défaut 0,
bit in_stock
));
Insérer dans les produits (Product_name, fabricant, quantité, prix, in_stock)
Valeurs ('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 "Classe S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen - 2021', 'Samsung', 50, 2999.90, 1);

Tableau résultant:

Commençons par commander les lignes dans le tableau par fabricant:

Sélectionner * parmi les produits Commande par fabricant;

Le tableau résultant est comme indiqué:

Nous pouvons ignorer les trois premières lignes comme indiqué dans la requête ci-dessous:

Sélectionnez Product_name, fabricant, quantité, prix, in_stock
des produits
Commande par fabricant
décalage 3 lignes;

Dans ce cas, la requête doit commander le tableau par fabricant, sauter les trois premières lignes et retourner le reste de la table.

Un exemple de sortie est comme indiqué:

Comme vous pouvez le voir, les lignes qui contiennent «pomme» comme le fabricant sont exclues du résultat.

Nous pouvons exclure la dernière ligne en renvoyant uniquement les trois colonnes suivantes après le décalage. Un exemple de requête est comme indiqué:

Sélectionnez Product_name, fabricant, quantité, prix, in_stock
des produits
Commande par fabricant
décalage 3 lignes
Répondre aux 3 lignes suivantes uniquement;

Dans ce cas, nous ignorons les trois premières colonnes et récupérons les trois colonnes suivantes du résultat. La table de sortie est comme indiqué:

Conclusion

Dans cet article, nous avons discuté de la clause de fetch offset dans SQL Server. Cette fonction vous permet de sauter et de limiter le nombre de lignes à partir d'une requête donnée.