Dans l'article précédent, nous avons expliqué comment utiliser la clause ORDER BY pour trier les résultats de la requête.
Après avoir trié les données, elles peuvent être traitées ultérieurement. Nous voyons souvent divers classements Top-N, tels que les dix meilleurs succès, les classements de films et les classements de jeux. De plus, lors de l'affichage des données sur le client, il ne s'agit généralement pas de lister tous les résultats à la fois, mais d'afficher N (10, 20, 50, etc.) enregistrements à la fois; puis de fournir «page suivante», «page précédente» et autres pages tournantes Caractéristiques. Dans cet article, nous verrons comment utiliser les instructions SQL pour réaliser les deux fonctions courantes ci-dessus.
Classement Top-N
Le principe du classement Top-N est de trier d'abord, puis de revenir aux N premiers enregistrements . Le diagramme schématique du processus est le suivant:
Il existe deux façons principales d'atteindre le classement Top-N:
- Syntaxe FETCH fournie par SQL standard;
- Une autre syntaxe LIMIT courante.
Utilisez SQL standard pour atteindre le classement des N premiers
L'exemple suivant utilise la clause FETCH pour interroger les 5 meilleurs employés avec un salaire mensuel:
-- Oracle、SQL Server 以及 PostgreSQL 实现
SELECT emp_name, salary
FROM employee
ORDER BY salary DESC
OFFSET 0 ROWS
FETCH FIRST 5 ROWS ONLY;
Parmi eux, ORDER BY trie le salaire mensuel de haut en bas; OFFSET signifie sauter 0 ligne; puis FETCH renvoie les 5 premières données, qui sont les 5 premiers salaires mensuels des employés. Le résultat de cette déclaration est le suivant: