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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 *************************
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 *************************
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 *************************