fetch-clause
fetch-clause définit un nombre maximal de lignes pouvant être extraites.
fetch-clause définit un nombre maximal de lignes pouvant être extraites. Utilisez cette clause pour communiquer au gestionnaire de base de données que l'application est conçue de manière à ne pas extraire plus de fetch-row-count lignes, quel que soit le nombre de lignes dans la table des résultats intermédiaires. Une tentative d'extraction d'un nombre de lignes supérieur à fetch-row-count est traitée de la même manière que la fin normale des données.
La détermination d'un ensemble prévisible de lignes à extraire requiert la spécification d'une clause ORDER BY avec des clés de tri qui identifient de manière unique l'ordre de tri de chaque ligne dans la table des résultats intermédiaires. Si la table de résultats intermédiaires inclut des clés de tri en double pour certaines lignes, l'ordre de ces lignes n'est pas déterministe. S'il n'existe pas de clause ORDER BY, la table de résultats intermédiaires n'est pas dans un ordre déterministe. Si l'ordre de la table de résultats intermédiaires n'est pas déterministe, l'ensemble des lignes extraites est imprévisible.
- fetch-row-count
- Expression indiquant le nombre maximal de lignes à extraire. L'expression ne doit pas contenir de référence de colonne, une fonction scalar-fullselect, une fonction qui n'est pas déterministe, une fonction ayant une action externe ou une référence de séquence (SQLSTATE 428H7). La valeur numérique doit être un nombre positif ou zéro (SQLSTATE 2201W). Si le type de données de l'expression n'est pas BIGINT, le résultat de l'expression est transtypé en valeur BIGINT. Lorsque fetch-row-count est omis, il est équivalent à 1.
- fetch-clause est spécifié dans l'instruction fullselect externe
- optimize-for-clause est spécifié pour l'instruction select
La limitation de la table de résultats à un nombre spécifié de lignes peut améliorer les performances. Dans certains cas, le gestionnaire de base de données cesse de traiter la requête lorsqu'il a déterminé le nombre de lignes spécifié. offset-clause est également spécifié avec une constante pour offset-row-count, la valeur de décalage constant est également prise en compte lorsqu'une détermination est effectuée pour cesser le traitement.
Si l'instruction fullselect contient une instruction de modification de données SQL dans la clause FROM, toutes les lignes sont modifiées, quelle que soit la limite du nombre de lignes à extraire.
Remarques
- Les mots clés FIRST et NEXT peuvent être utilisés de façon interchangeable. Le résultat est inchangé ; cependant, l'utilisation du mot clé NEXT est plus lisible lorsque offset-clause est utilisé.
- Les mots clés ROW et ROWS peuvent être utilisés indifféremment. Le résultat est inchangé, mais l'utilisation de ROWS est plus lisible lorsqu'elle est associée à un nombre de lignes autres que 1.
- Syntaxe alternative : les éléments suivants sont pris en charge pour la compatibilité avec SQL utilisé par d'autres produits de base de données. Ces solutions de rechange ne sont pas standard et ne devraient pas être utilisées.
Tableau 1. Alternatives de syntaxe Syntaxe alternative Syntaxe équivalente LIMIT x FETCH FIRST x ROWS ONLY LIMIT x OFFSET y OFFSET y ROWS FETCH NEXT x ROWS ONLY LIMIT y, x OFFSET y ROWS FETCH NEXT x ROWS ONLY
