2009-04-22 9 views

risposta

13

Non sono sicuro che ORACLE abbia mai avuto una funzione TOP. Vuoi utilizzare una query TOP-N.

Ad esempio:

select * 
    from (SELECT * 
      FROM foo 
      where foo_id=[number] 
     order by foo_id desc) 
where rownum <= 3 

Questo ti porterà i primi tre risultati (perché ordino dal disc nella query sub)

+1

La parola chiave 'rownum' è il numero di riga fisica nel database, motivo per cui è necessario prima ordinarlo, quindi applicare i criteri. –

4

Oracle non supporta la parola chiave TOP. La query

SELECT TOP 10 product_id 
    FROM product 

genererà un errore di sintassi perché la TOP 10 clausola non viene riconosciuto, almeno mediante Oracle 11.1 (la versione corrente produzione).

1

TOP è supportato da SQL server, non da Oracle. Non confondere con l'hit FIRST_ROWS che è per recuperare il piano migliore per le prime file da non interrompere dopo un numero di risultati.

Come detto, la soluzione Oracle è giocare con la pseudocolonna ROWNUM.