FirebirdSQL logo

Exemples d’utilisation de FIRST et de SKIP.

La requête suivante renvoie les 10 premiers noms de la table PEOPLE (les noms seront également triés, voir ci-dessous) ORDER BY):

SELECT FIRST 10 id, name
FROM People
ORDER BY name ASC

La requête suivante renvoie tous les noms de la table PEOPLE sauf les 10 premiers :

SELECT SKIP 10 id, name
FROM People
ORDER BY name ASC

Et cette requête renvoie les 10 derniers enregistrements (notez les doubles crochets) :

SELECT SKIP ((SELECT COUNT(*) - 10 FROM People))
  id, name
FROM People
ORDER BY name ASC

Cette requête renvoie les lignes 81 à 100 de la table PEOPLE :

SELECT FIRST 20 SKIP 80 id, name
FROM People
ORDER BY name ASC
Voir aussi :

“FETCH`, OFFSET”, `ROWS.

ORDER BY

Par défaut, le résultat de l’instruction SELECT n’est ordonné d’aucune façon (bien que très souvent il soit ordonné dans l’ordre chronologique des lignes de la table par les instructions INSERT). La clause ORDER BY vous permet de définir l’ordre requis lors de la sélection des données.

Syntaxe
SELECT ... FROM ...
...
ORDER BY <ordering-item> [, <ordering-item> ...]

<ordering-item> ::=
  {col-name | col-alias | col-position | expression}
  [COLLATE collation-name]
  [ASC[ENDING] | DESC[ENDING]]
  [NULLS {FIRST | LAST}]
Table 1. Paramètres de la clause ORDER BY
Paramètre Description

col-name

Le nom complet de la colonne.

col-alias

Alias (nom d’emprunt) de la colonne.

col-position

Position de la colonne.

expression

Expression arbitraire.

collation-name

Nom de la collation (ordre de tri).

La clause énumère, en les séparant par des virgules, les colonnes selon lesquelles le jeu de données résultant doit être ordonné. Vous pouvez spécifier un nom de colonne, un alias attribué à la colonne dans la liste de tri à l’aide du mot-clé AS, ou le numéro de séquence de la colonne dans la liste de tri. Dans une clause, vous pouvez mélanger le formulaire d’entrée pour différentes colonnes. Par exemple, une colonne dans la liste de tri peut recevoir son nom, et une autre colonne peut recevoir son numéro de séquence.

Important

Si vous triez par position de colonne ou par alias, l’expression correspondant à cette position (alias) sera copiée de la liste de sélection SELECT. Ceci s’applique également aux sous-requêtes, donc la sous-requête sera exécutée au moins deux fois.

Note

Dans le cas d’un tri par numéro de colonne pour une requête de la forme SELECT *, le serveur expose un astérisque (*) pour définir les colonnes à trier. Cependant, utiliser cette fonctionnalité dans vos requêtes est une `mauvaise pratique'.