Avatar billede Søren Bech Morsing Praktikant
03. januar 2005 - 16:19 Der er 6 kommentarer og
1 løsning

rownum bewteen x AND y, virker kun når x = 0 el. 1

Trækker data ud fra 8 tabeller og har aller først i min WHERE skrevet
WHERE (rownum BETWEEN 0 AND 30) og så resten af mine betingelser.

Det virker men kun hvis det første tal er 0 el. 1

Jeg har ORDER BY med, men ingen GROUP BY.
Har set flere eksempler herinde med noget paranteser om m.v. er det det jeg gør forkert?

og er rownum eneste måde at styre mængden? Eller er der TOP og LIMIT og andre kommandoer? Oracle 9x bruger vi
Avatar billede Slettet bruger
03. januar 2005 - 23:36 #1
Det kan vel løses med subquery - men det er ikke optimalt:

select * from
(select ...
from ...
where ...
order by ...
)
where rownum between 0 and 30
Avatar billede Søren Bech Morsing Praktikant
04. januar 2005 - 07:12 #2
syens jeg har fået mig læst frem til at en group by på de felter jeg hiver ud også kunne løse det?

Det vil jeg lige prøve. Går ud fra alle søgemaskiner bruger noget lign. og så kan man vel også på Oracle ;)
Avatar billede Søren Bech Morsing Praktikant
04. januar 2005 - 12:02 #3
er kommet frem til det her (som du også forklarer)

SELECT * FROM (SELECT [field] WHERE rownum < 200) WHERE rownum > 100

Men hastigheds mæssigt så hiver den jo stadig 200 rækker ud, jeg får bare kun de 100 pga. mine 2 selects.

Det kan da ikke passe at ORACLE ikke stiller en form for limit til rådighed i udtræk?
Avatar billede Søren Bech Morsing Praktikant
06. januar 2005 - 14:12 #4
svar bare.. det var korrekt. Men F... langsomt... skod database ;)
Avatar billede Søren Bech Morsing Praktikant
06. januar 2005 - 15:59 #5
he he... fandt også fejlen hvorfor det blev endnu langsommere, havde glemt substr(field,1,xx) uden om alle indekserede felter ;( NEDTUR...

Nu tager siden under et split sekund at genere igen - og hvorfor sker det så lige pludselig... tjae fordi vi dublerede alle vores data for at skifte til en ny struktur
Avatar billede Slettet bruger
06. januar 2005 - 21:31 #6
Et svar.

Jeg mener faktisk at Oracle optimerer med den syntax du bruger.
Jeg kan ikke huske hvad det er der skal til - men det er nogte med at der skal være index der svarer til afgrænsningerne.

Hvad var det med "substr(field,1,xx) uden om alle indekserede felter " ?
Avatar billede Søren Bech Morsing Praktikant
06. januar 2005 - 21:35 #7
substr(felter du hiver ud,1,længden af feltet) <- se oracle admin for længden af det indeks den opretter
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester