Dans un souci d'optimiser le nombre d'enregistrements retourné par une requête SQL, il est parfois intéressant de recourir à cette fonction.
Programmation > SQL
Recherche :   
Actualité Système Salon Concours Outils Programmation Devparadise Programmation HTML .Net JavaScript VBScript ASP PHP Visual Basic Perl Java Active X SQL XML WAP Delphi Graphisme Flash Web Design Promotion Référencement Publicité Valeur de votre site Outils Systèmes Windows Unix Linux Benchmark Hardware Réseaux locaux Droit Sécurité
Simulation de la fonction LIMIT de MySQL avec SQL Server
  Auteur : Philippe PETIT

Dans un souci d'optimiser le nombre d'enregistrements retourné par une requête SQL, il est parfois intéressant de recourir à cette fonction.

Publicité 
En effet, lorsque le nombre d'enregistrements retourné est important, un programme (ASP, VB…) mettra plus de temps à extraire les enregistrements que ne le ferait le serveur SQL.

Par exemple, si nous vous extraire les enregistrements 3001 à 3020 :

- d'une requête de manière classique :

    1- Creation d'une requête du type : select top 3020 * from test order by idtest
    2- se déplacer à l'enregistrement 3001 puis affichage des enregistrements
l'inconvénient majeur de ce système est le manque de rapidité dû à la taille du recordset.

- d'une requête simulant la fonction LIMIT :

principe :

extraction des 3020 premiers enregistrements dans l'ordre croisant puis extraction des 20 premiers enregistrements dans l'ordre décroissant et enfin remettre ces 20 enregistrements dans l'ordre initial.

ce qui donne une requête du type : select * from (select top 20 * from (select top 3020 * from test order by idtest) as t1 order by idtest DESC) as t2 order by idtest

A lire aussi sur Devparadise.com :
  • MySQL AB sera à Linux Expo Paris
  • Comment récupérer l'ID d'un insert sous SQL Server?
  • MySQL 4.0 est arrivé !
  • Récupération de données dans une base de données MS SQL et MySQL .
  • Format de date universelle.
  • A télécharger aussi sur Devparadise.com :
  • XAMPP 1.5.1 pour windows
  • mod_auth_mysql version 1.11 pour Linux/Unix
  • mod_auth_mysql version 1.11 pour windows
  • WinSQL Lite 3.8
  • ezContents 1.01

  • © 1997-2008 tous droits réservés Devparadise.com
    Les logos, et marques déposées sont la propriété de leurs détenteurs respectifs.
    Devparadise.com s'est engagé à respecter la confidentialité des données personnelles régies par la loi 78-17 du 6 janvier 1978.
    Déclaration C.N.I.L. n° 621623
    MySQL,PostgreSQL,SQL Server,Limit