Maison > Article > base de données > Quelle est l'utilité de fetch dans Oracle
Dans Oracle, fetch est utilisé pour limiter le nombre de lignes renvoyées par la requête. Vous pouvez spécifier le nombre de lignes à ignorer avant le début de la limite de lignes. Si elle est ignorée, le décalage est de 0. La limite de lignes est calculée à partir du. première ligne. La syntaxe est "[OFFSET offset ROWS]FETCH NEXT ROWS[ONLY|WITH TES]".
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
La clause FETCH peut être utilisée pour limiter le nombre de lignes renvoyées par la requête dans Oracle. Ce tutoriel vous apprendra à utiliser la clause FETCH.
Syntaxe de la clause Oracle FETCH
Ce qui suit illustre la syntaxe de la clause de limite de lignes :
[ OFFSET offset ROWS] FETCH NEXT [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]
La clause OFFSET spécifie le nombre de lignes à ignorer avant le début de la limite de lignes. La clause OFFSET est facultative. Si vous l'ignorez, le décalage est de 0 et la limite de ligne est calculée à partir de la première ligne.
Le décalage doit être un nombre ou une expression dont la valeur est un nombre. Les décalages obéissent aux règles suivantes :
Si le décalage est une valeur négative, il est traité comme 0.
Si le décalage est NULL ou supérieur au nombre de lignes renvoyées par la requête, aucune ligne n'est renvoyée.
Si le décalage contient une fraction, la partie fractionnaire est tronquée.
La clause FETCH spécifie le nombre ou le pourcentage de lignes à renvoyer.
Pour des raisons de clarté sémantique, vous pouvez utiliser le mot-clé ROW au lieu de ROWS, FIRST au lieu de NEXT. Par exemple, les clauses suivantes se comportent et produisent les mêmes résultats :
FETCH NEXT 1 ROWS FETCH FIRST 1 ROW
Option ONLY | WITH TIES
Renvoie uniquement le nombre de lignes ou un pourcentage du nombre de lignes après FETCH NEXT (ou FIRST).
WITH TIES renvoie la même clé de tri que la dernière ligne. Notez que si vous utilisez WITH TIES, vous devez spécifier une clause ORDER BY dans la requête. Si vous ne le faites pas, la requête ne renverra pas de lignes supplémentaires.
Exemple de clause Oracle FETCH
1 Exemple d'obtention des N premières lignes d'enregistrements
L'instruction suivante renvoie les 10 premiers produits avec l'inventaire le plus élevé :
-- 以下查询语句仅能在Oracle 12c以上版本执行 SELECT product_name, quantity FROM inventories INNER JOIN products USING(product_id) ORDER BY quantity DESC FETCH NEXT 5 ROWS ONLY;
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!