[SQL] Oracle 7: top 10 entries uit een tabel

Pagina: 1
Acties:

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 15:23

Maasluip

Kabbelend watertje

Topicstarter
Ik zit met een klein probleempje. Ik moet de top 10 of top 20 entries uit een tabel halen. Nu is dat met Oracle 8 en hoger niet zo'n groot probleem (limit, rank etc.), maar met Oracle 7 is het niet zo triviaal zoals ik merk.

Het mag bekend zijn dat het aantal rows met rownum limiteren niet werkt (Oracle selecteert eerst het maximum aantal rows en sorteert die), maar ook een subquery die je sorteert en daaruit weer selecteert werkt niet in Oracle 7.

Voorbeeldje:
select * from (select num, *
from table
order by num desc)
where rownum <= 10)

Dit werkt dus niet.

Iemand een idee om dit in een enkele query te doen?

Signatures zijn voor boomers.


Verwijderd

in één query is lastig.

Waarom maak je niet expliciet een view in plaats van een inline view te gebruiken?

create view top10_v
as
select num, *
from table1
order by num desc
;

en daar vervolgens op querien
select *
from top10_v
where rownum < 11
;

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 15:23

Maasluip

Kabbelend watertje

Topicstarter
Een order by mag niet in een view (tenminste, niet in Oracle 7) dus dat is geen oplossing.

Ondertussen heb ik er al een procedure voor geschreven, maar ik hou me nog altijd aanbevolen voor een oplossing dat ik het in een query kan doen.

Signatures zijn voor boomers.


  • EfBe
  • Registratie: Januari 2000
  • Niet online
In oracle 7 kan dat alleen met een cursor, dacht ik.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com