Sélectionner nième entrée d'une table - SQL/NoSQL - Programmation
Marsh Posté le 20-04-2007 à 10:31:41
avec mysql, utilise "limit 20,1" si je ne m'abuse
avec d'autres SGBD c'est plus compliqué
Marsh Posté le 20-04-2007 à 10:42:41
La requete suivante ne marche pas :-/
select * from matable limit 20,1;
"ERREUR à la ligne 1 :
ORA-00933: SQL command not properly ended"
Marsh Posté le 20-04-2007 à 11:07:17
Bon il parait qu'on peut sinon essayer avec rownum. Je vais voir...
Marsh Posté le 20-04-2007 à 11:16:31
si tu parles de rownum, c'est que t'es sous Oracle... je t'ai dit que le LIMIT c'était que pour MySQL
Marsh Posté le 20-04-2007 à 11:16:32
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
Marsh Posté le 20-04-2007 à 11:19:44
Avec Oracle 10g :
Code :
|
1 : Numéro de la dernière ligne désirée
2 : Nombre de lignes désiré
Marsh Posté le 20-04-2007 à 11:20:29
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 |
oui dsl je suis en effet sous oracle 9i
Marsh Posté le 20-04-2007 à 11:22:50
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.
Marsh Posté le 20-04-2007 à 11:41:01
-- 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
Marsh Posté le 02-12-2008 à 13:32:00
En fait j'ai trouvé une feinte en ORACLE ;
SELECT NIND
FROM MATABLE
GROUP BY NIND, ROWNUM
HAVING ROWNUM = 2
Voilà.
Marsh Posté le 20-04-2007 à 10:29:36
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?