Gå til innhold

Anbefalte innlegg

prøver å få ut alle felt mellom "n" og "m" på denne måten

 

select * from (select *, rownum as seqnum from table) where seqnum > 5 and seqnum <10;

dette gir meg en feilmelding ved asterisk i subquery

select * from (select *, rownum as seqnum from table) where seqnum > 5 and seqnum <10

                                        *

ERROR at line 1:

ORA-00923: FROM keyword not found where expected

 

, så om jeg fjerner den og derav får dette:

select * from (select rownum as seqnum from table) where seqnum > 5 and seqnum <10;

 

så fungerer det, men da får jeg bare ut rownum, jeg trenger altså en måte og få med alle andre felt på?

Lenke til kommentar
  • 4 uker senere...
Videoannonse
Annonse

det var vel noe av det første jeg også tenkte på, men det går desverre ikke an, bare prøv selv om du har tilgang på en oracle base...

 

husker ikke nøyaktige forklaringen i farten, men det går noe som dette:

 

"rownum > 5" leverer ikke noe

"rownum < 10" leverer noe

 

grunnen til dette er såvidt jeg husker at rownum lages "on the fly" og den derav ikke vet hva den skal trekke ut fra ">5", men er lenge siden jeg leste om det, uansett fant jeg plutselig svaret selv nå:

 

SELECT * FROM (select s.*, rownum seqnum from	
(select * from table ORDER BY nr) s	
where rownum <= 10 )	
WHERE seqnum >= 5;

 

kanskje ikke den peneste koden man kunne fått til men det gjør jobben...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...