Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1385 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Sélectionner nième entrée d'une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sélectionner nième entrée d'une table

n°1545544
BigEno
Posté le 20-04-2007 à 10:29:36  profilanswer
 

Salut,
 
J'aimerais sélectionner la 20ème entrée d'une table mais je ne sais pas comment coder mon select
Quelqu'un a une idée?

mood
Publicité
Posté le 20-04-2007 à 10:29:36  profilanswer
 

n°1545547
MagicBuzz
Posté le 20-04-2007 à 10:31:41  profilanswer
 

avec mysql, utilise "limit 20,1" si je ne m'abuse
 
avec d'autres SGBD c'est plus compliqué

n°1545565
BigEno
Posté le 20-04-2007 à 10:42:41  profilanswer
 

La requete suivante ne marche pas :-/
select * from matable limit 20,1;
 
"ERREUR à la ligne 1 :
ORA-00933: SQL command not properly ended"

n°1545589
BigEno
Posté le 20-04-2007 à 11:07:17  profilanswer
 

Bon il parait qu'on peut sinon essayer avec rownum. Je vais voir...

n°1545595
MagicBuzz
Posté le 20-04-2007 à 11:16:31  profilanswer
 

si tu parles de rownum, c'est que t'es sous Oracle... je t'ai dit que le LIMIT c'était que pour MySQL :o

n°1545596
BigEno
Posté le 20-04-2007 à 11:16:32  profilanswer
 

Avec rownum ça marche si je veux les n premières entrées de ma table mais ça marche pas ni pour  les n dernieres ni pour la nième

n°1545598
BigEno
Posté le 20-04-2007 à 11:17:00  profilanswer
 

PLEASE HELP! ;-/

n°1545603
MagicBuzz
Posté le 20-04-2007 à 11:19:44  profilanswer
 

Avec Oracle 10g :
 

Code :
  1. SELECT *
  2. FROM
  3. (
  4.     SELECT *
  5.     FROM
  6.     (
  7.         SELECT *
  8.         FROM pro
  9.         WHERE codsoc = 2
  10.         ORDER BY codpro
  11.     )
  12.     WHERE rownum <= 20 -- (1)
  13.     ORDER BY codpro DESC
  14. )
  15. WHERE rownum <= 1 -- (2)
  16. ORDER BY codpro


 
1 : Numéro de la dernière ligne désirée
2 : Nombre de lignes désiré


Message édité par MagicBuzz le 20-04-2007 à 11:40:18
n°1545605
BigEno
Posté le 20-04-2007 à 11:20:29  profilanswer
 

MagicBuzz a écrit :

si tu parles de rownum, c'est que t'es sous Oracle... je t'ai dit que le LIMIT c'était que pour MySQL :o


oui dsl je suis en effet sous oracle 9i

n°1545608
MagicBuzz
Posté le 20-04-2007 à 11:22:50  profilanswer
 

Essaie cette syntaxe avec la 9i.
 
Je ne sais plus depuis quelle version les "ORDER BY" dans un sous-select son autorisés sous Oracle.
Si ça ne passe pas, alors tu n'as pas d'autre choix que de faire un simple select * avec un tri, puis seeker directement la ligne désirée dans ton résultat.
Tu peux le faire via PL/SQL si ton tuyau entre le SGBD et ton application est limité en vitesse.

mood
Publicité
Posté le 20-04-2007 à 11:22:50  profilanswer
 

n°1545632
MagicBuzz
Posté le 20-04-2007 à 11:41:01  profilanswer
 

-- Je viens de modifier un peu la requête : y'avait une erreur (non applicable dans le cas d'une unique ligne sélectionnée) et un <= X est mieux que < X + 1 ;)

n°1820607
samgratt_l​e_vrai
Posté le 02-12-2008 à 13:32:00  profilanswer
 

En fait j'ai trouvé une feinte en ORACLE ;
SELECT     NIND
FROM       MATABLE
GROUP BY NIND, ROWNUM
HAVING    ROWNUM = 2
 
Voilà.


Message édité par samgratt_le_vrai le 02-12-2008 à 13:38:30

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Sélectionner nième entrée d'une table

 

Sujets relatifs
Sélectionner des éléments au sein d'une framearret du programme sur touche entree
Afiicher les 5 résultats les plus nombreux dans une table MySQLOrdonner une table à partir d'une autre table
fonction avec table hash en parametreASP.NET structure table dataset
Combiner le résultat de deux requêtes sur une même table[Résolu] Pb modification structure table pr rajouter auto-increment
table innodbComment selectionner un image avec un encadré
Plus de sujets relatifs à : Sélectionner nième entrée d'une table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR