Avatar billede iphase Nybegynder
02. juni 2003 - 13:23 Der er 6 kommentarer og
1 løsning

Select Limit

Hej eksperter

Jeg har forgævest forsøgt at lave en query der efterligner MySQL's LIMIT funktion, men uden held.
Her er hvad jeg har lige nu som virker:

SELECT j.jnr JNR, j.dato, j.kopi, j.vedr, j.reftil, ref.beskrivelse REFERENCE, j.beh_senest, j.ok, j.year, j.arkiv, j.bruger
FROM journal j, reftil r, reference ref
WHERE r.jnr = j.jnr AND r.refnr = ref.refnr
ORDER BY JNR DESC

Det her er så med "limit" på, men det virker ikke.. der kommer ingen ting retur.

select * from (select * from (SELECT j.jnr JNR, j.dato, j.kopi, j.vedr, j.reftil, ref.beskrivelse REFERENCE, j.beh_senest, j.ok, j.year, j.arkiv, j.bruger 
FROM journal j, reftil r, reference ref
WHERE r.jnr = j.jnr AND r.refnr = ref.refnr
ORDER BY JNR DESC ) WHERE ROWNUM <= 100
) WHERE ROWNUM >= 150

Håber virkeligt der er nogen der kan hjælpe, det driller helt vildt meget, og jeg får jo ingen fejl.
og det virker fint hvis jeg bare vælger et max der hedder ROWNUM < 150, men jeg skal jo også have et minimum der 100. så jeg kun får ROW's mellem 100 og 150. da der er ca 1600 ROWS i alt, er det lidt kedeligt at skulle hente dem alle heletiden.. ;)
Avatar billede miracon Nybegynder
02. juni 2003 - 13:46 #1
Prøv:

select * from (SELECT j.jnr JNR, j.dato, j.kopi, j.vedr, j.reftil, ref.beskrivelse REFERENCE, j.beh_senest, j.ok, j.year, j.arkiv, j.bruger 
FROM journal j, reftil r, reference ref
WHERE r.jnr = j.jnr AND r.refnr = ref.refnr
ORDER BY JNR DESC ) WHERE ROWNUM between 100 and 150
Avatar billede nosjns Nybegynder
02. juni 2003 - 13:53 #2
Du skal huske, du skal have et index jnr kolonnen for at få de korrekte rækker. Se evt. http://www.eksperten.dk/spm/111940
Avatar billede psv Nybegynder
02. juni 2003 - 14:36 #3
miracon: between virker ikke... Det giver det tomme resultat! En select der skal returnere et sæt på den måde kan laves som:

select *
from (
    select rownum as myrownum, inner_select.*
    from (
          select *
          from <your_table>
          order by <your_ordering>
          ) inner_select
    where rownum <= 20
    )
where myrownum > 10

Bemærk dog at det første felt i resultatet er rækkenummeret!
Avatar billede iphase Nybegynder
02. juni 2003 - 15:36 #4
Miracon : den har jeg prøvet, men det giver som psv siger et tomt result.

psv : jeg har prøvet det du siger men prøver det lige igen da jeg syntes dit ser lidt anderledes ud. kunne være det virkede dennegang.
Avatar billede iphase Nybegynder
02. juni 2003 - 15:48 #5
psv : det virkede fint, men så kom der det problem at jeg får en ekstra COL i mit RESULT. nemlig MYROWNUM.. ikke så fedt da det er til ud skrift..
har du en løsning der fjerner denne?
Avatar billede psv Nybegynder
02. juni 2003 - 16:12 #6
Tjah - du lader være med at selecte * yderst :-)
Avatar billede iphase Nybegynder
02. juni 2003 - 17:38 #7
takker ;)
Det er bare kogeren at lave sql i dette dejlige vejr...
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



IT-JOB