Precedente :: Successivo |
Autore |
Messaggio |
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 09 Set 2005 14:11 Oggetto: Paginare Oracle |
|
|
Note dolenti, sto cercando di fare una query con la paginazione su un db oracle. Giusto per intenderci quello che in mysql farei con questa:
Codice: | select * from tabella order by campo limit 40,20 |
Ho cercato e ricercato ma non ho trovato un comando analogo in oracle, in giro qualcuno suggerisce una soluzione alternativa e cioè questa:
Codice: | select * from
(
select a.*, rownum r from
(
select *
from tabella
order by campo
) a
where rownum <= 60
) b
where r >= 40 |
Purtroppo funziona dalla versione 8.1 ma io devo farlo su una 8.0 dove l'order by di una subquery non è ammesso.
Idee? |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11566 Residenza: Tokelau
|
Inviato: 09 Set 2005 14:37 Oggetto: |
|
|
una select "top" non esiste?
edit: altrimenti niente subquery, aggiungi solo rownum, ordini per quel campo e fai tante next quante >= (10 * (pagina-1)) poi visualizzi 10 record...
certo non sarà un mostro di performance...
L'ultima modifica di SverX il 09 Set 2005 14:42, modificato 1 volta |
|
Top |
|
|
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 09 Set 2005 14:42 Oggetto: |
|
|
No, la parola chiave TOP non esiste in oracle, l'equivalente è rownum ma parte sempre da 1 quindi posso fargli prendere sempre e solo le prime tot ma non modificare l'offset.
A seguito di svariate ricerche credo che non si possa fare, se comunque ti/vi viene in mente qualche idea fatemi sapere. |
|
Top |
|
|
|