Partager via


Clause ORDER BY (SQL Server Compact)

Spécifie l'ordre de tri du jeu de résultats. La clause ORDER BY n'est pas valide dans les sous-requêtes. Vous avez également la possibilité d'extraire uniquement une fenêtre ou une page de résultats à partir du jeu de résultats, à l'aide d'une clause OFFSET-FETCH.

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

  • order_by_expression
    Spécifie une colonne sur laquelle effectuer le tri. Vous pouvez spécifier une colonne de tri par un nom ou un alias de colonne, qui peut être qualifié par le nom de la table ou une expression. Vous pouvez spécifier plusieurs colonnes de tri. L'ordre des colonnes de tri dans la clause ORDER BY détermine l'organisation de l'ensemble de résultats trié.

    La clause ORDER BY peut comprendre des éléments qui n'apparaissent pas dans la liste de sélection.

    Notes

    Vous ne pouvez pas utiliser de colonnes de type de données ntext et image dans une clause ORDER BY.

  • ASC
    Indique que les valeurs de la colonne spécifiée doivent être triées dans l'ordre croissant, de la plus petite vers la plus grande.

  • DESC
    Indique que les valeurs de la colonne spécifiée doivent être triées par ordre décroissant, de la plus grande à la plus petite des valeurs. Les valeurs NULL sont traitées comme les valeurs les plus petites possibles.

  • 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.

Notes

La clause ORDER BY peut contenir un nombre illimité d'éléments.

Si vous utilisez la clause ORDER BY avec une instruction UNION, les colonnes de tri doivent être représentées par les alias ou noms de colonnes spécifiés dans la première instruction SELECT. Par exemple, la première des instructions SELECT suivantes réussit, tandis que la seconde échoue.

Cette instruction réussit car col1 appartient à la première table (t1).

Create t1 (col1 int, col2 int);

Create t2 (col3 int, col4 int);

SELECT * from t1 UNION SELECT * from t2 ORDER BY col1;

Cette instruction échoue car col3 n'appartient pas à la première table (t1).

SELECT * from t1 UNION SELECT * from t2 ORDER BY col3;

Exemple

L'exemple ci-dessous dresse la liste des employés par leur prénom.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name

Les exemples ci-dessous illustrent l'utilisation de la clause OFFSET-FETCH avec ORDER BY, où vous 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;

Voir aussi

Référence

Clause OFFSET FETCH (SQL Server Compact)