LIMIT 1, 10 versus Sql Server

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11883881
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 *************************
Publicité
Poster une réponse
Anonyme