Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

LIMIT 1, 10 versus Sql Server

1 réponse
Avatar
sam
J'ai besoin nde faire de la pagination sur mon site web.

La commande TOP n'a pas d'offset donc on ne peut lui demander un intervalle
d'enregistrement à une position donnée, comme MySql qui a la commande LIMIT
1, 10 qui est exactement ce dont j'ai besoin.
Quelqu'un aurait-il une astuce pour avoir le même résultat que LIMIT x,y ?
Merci.

Sam

1 réponse

Avatar
Fred BROUARD
LIMIT et TOP sont des clauses anti relationnelles. En effet elles
introduisent des erreurs ensemblistes. C'est pourquoi la norme SQL les a
refusées...

En revanche vous pouvez utiliser les fonctions de fenêtrage comme RANK,
DENSE_RANK et ROW_NUMBER qui permettent cela de façon bien plus
cohérente que ne le fait LIMIT ou TOP.

Lisez l'article que j'ai écrit à ce sujet. Il y a justement un exemple
concernant la pagination de lignes...
http://sqlpro.developpez.com/SQL_Server_2K5/N1.php
§ 1.7 Fonctions de classement et d'énumération (norme SQL:2003) :

A +

sam a écrit :
J'ai besoin nde faire de la pagination sur mon site web.

La commande TOP n'a pas d'offset donc on ne peut lui demander un
intervalle d'enregistrement à une position donnée, comme MySql qui a la
commande LIMIT 1, 10 qui est exactement ce dont j'ai besoin.
Quelqu'un aurait-il une astuce pour avoir le même résultat que LIMIT x,y ?
Merci.

Sam




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************