Requête SQL - Récupération des 5 lignes les plus récentes

Requête SQL - Récupération des 5 lignes les plus récentes - SQL/NoSQL - Programmation

Marsh Posté le 14-06-2004 à 10:49:24    

Bonjour,
 
j'aimerai savoir comment on peut faire pour récupérer les 5 lignes contenant les dates les plus récentes ?
 
Merci d'avance.

Reply

Marsh Posté le 14-06-2004 à 10:49:24   

Reply

Marsh Posté le 14-06-2004 à 11:22:32    

order by date limit 5

Reply

Marsh Posté le 16-06-2004 à 17:58:58    

Si tu spécifies ton SGBD ca sera vachement plus simple de te répondre, car tout ce qui est limitation du nombre de résultat ne concerne pas la norme SQL, donc y'a pas deux SGBD qui font ça de la meme façon. Dans SQL Server par exemple, ce serait "select top 5 ... order by date", et avec Oracle, une sous-requête est obligatoire.

Reply

Marsh Posté le 26-06-2004 à 13:14:36    

Arjuna a écrit :

Si tu spécifies ton SGBD ca sera vachement plus simple de te répondre, car tout ce qui est limitation du nombre de résultat ne concerne pas la norme SQL, donc y'a pas deux SGBD qui font ça de la meme façon. Dans SQL Server par exemple, ce serait "select top 5 ... order by date", et avec Oracle, une sous-requête est obligatoire.


 
tu as ROWNUM sous Oracle qui est très pratique, cette fonction(dispo depuis une requete SQL) retourne un compteur.

Reply

Marsh Posté le 26-06-2004 à 13:55:31    

Le problème de ROWNUM d'Oracle, c'est qu'il ne tiens pas compte du order by, du coup ca peut être très gênant si on veut par exemple les 10 plus gros (select TOP 10 ... order by champ sous SQL Serverparexemple)

Reply

Marsh Posté le 27-06-2004 à 09:22:10    

c'est pas un problème, il suffit de faire des requêtes imbriquées avec Oracle ...
 
SELECT * from (SELECT * from MA_TABLE ORDER BY MON_CHAMP) WHERE ROWNUM <= 10;

Reply

Marsh Posté le 27-06-2004 à 20:22:32    

Mouais, en effet c'est une solution :)
 
Par contre, je suis surpris que tu parles de ça... En effet, je savais que SQL Server 2000 supportait les order by dans des requêtes imbriquées, mais quand j'ai essayé de faire la chose avec Oracle, j'ai systématiquement eu un parse error.
 
A l'époque je devais utiliser la 8.0.5. C'est arrivé avec la 8i ? ou 9i ? (les deux versions que j'utilise maintenant)


Message édité par Arjuna le 27-06-2004 à 20:24:17
Reply

Marsh Posté le 27-06-2004 à 20:57:56    

J'ai jamais eu de souci avec de telles requêtes imbriquées ... et il me semble que j'ai toujours utilisé Oracle 8 et 9, donc ça devrait passer.

Reply

Marsh Posté le 27-06-2004 à 22:35:13    

J'essairai ça demain aussi alors :)
 
Il faut dire que Oracle 8i a apporté une véritable révolution dans Oracle... La 8.0.5 avait énormément de limitations, style on ne pouvais pas faire ça :
 
select (select ...) from ...
 
Plus d'autres avancées importantes (view updatable, etc.) donc je pense que la 8.0.5 ne supporte effectivement pas cette syntaxe (car je suis sur que c'est avec Oracle que je me suis heurté à cette limitation). Je dois avoir un serveur avec la 8.0.5 au taff, je vérifierai, ça peut toujours être bon à savoir :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed