Partager via


Clause OFFSET FETCH (SQL Server Compact)

La clause OFFSET-FETCH vous offre la possibilité d'extraire uniquement une fenêtre ou une page de résultats à partir du jeu de résultats. La clause OFFSET-FETCH ne peut être utilisée qu'avec la clause ORDER BY.

Syntaxe

[ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n][<offset_fetch>] ] 

<offset_fetch> ::= {OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }    [FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY]}

Arguments

  • OFFSET { constante_entière | expression_nombre_lignes_décalage } { ROW | ROWS }
    Indique le nombre de lignes à ignorer, avant de commencer à retourner des lignes depuis l'expression de requête. L'argument de la clause OFFSET peut être une expression ou un entier supérieur ou égal à zéro. Vous pouvez utiliser indifféremment ROW et ROWS.

  • FETCH { FIRST|NEXT } <expression nombre_lignes> { ROW|ROWS } ONLY
    Indique le nombre de lignes à retourner, après le traitement de la clause OFFSET. L'argument de la clause FETCH peut être une expression ou un entier supérieur ou égal à un. Vous pouvez utiliser indifféremment ROW et ROWS. De la même manière, FIRST et NEXT peuvent être utilisés indifféremment.

Limites relatives à l'utilisation d'OFFSET-FETCH

  • ORDER BY est obligatoire avec les clauses OFFSET et FETCH.

  • La clause OFFSET est obligatoire avec FETCH. Vous ne devez jamais utiliser ORDER BY …. FETCH.

  • TOP ne peut pas être combiné à OFFSET et FETCH dans la même expression de requête.

  • L'expression de nombre de lignes OFFSET/FETCH peut être une expression arithmétique, constante ou paramétrique qui retourne une valeur entière. L'expression de nombre de lignes ne prend pas en charge les sous-requêtes scalaires.

Exemple

Les exemples suivants illustrent l'utilisation de la clause OFFSET-FETCH avec ORDER BY.

Exemple 1 - Ignorez les 10 premières lignes du jeu de résultats trié et retournez les lignes restantes.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;

Exemple 2 - Ignorez les 10 premières lignes du jeu de résultats trié et retournez les 5 lignes suivantes.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;