Je développe une application Web et j'ai besoin de pages classées résultats. J'utilise normalement LIMIT/OFFSET à cette fin.Alternatives à LIMIT et OFFSET pour la radiomessagerie dans Oracle
Quelle est la meilleure façon de classer les résultats commandés dans Oracle? J'ai vu des exemples utilisant rownum et sous-requêtes. Est-ce le chemin? Pourriez-vous me donner un exemple pour traduire ce SQL à Oracle:
SELECT fieldA,fieldB
FROM table
ORDER BY fieldA
OFFSET 5 LIMIT 14
(J'utilise Oracle 10g, pour ce que ça vaut)
Merci!
Réponse: En utilisant le lien ci-dessous par karim79, ce SQL ressemblerait à ceci:
SELECT * FROM (
SELECT rownum rnum, a.*
FROM(
SELECT fieldA,fieldB
FROM table
ORDER BY fieldA
) a
WHERE rownum <=5+14
)
WHERE rnum >=5
Je pense que la dernière ligne devrait plutôt dire 'WHERE rnum> 5' (non'> = '), sinon vous obtiendrez 15 dossiers, sauter seulement les quatre premiers. – peterp