Avatar billede webname Nybegynder
21. december 2007 - 04:34 Der er 8 kommentarer

Limit antal der bliver trukket ud, som i MySQL

Hej Eksperter,

Jeg er netop begyndt på Oracle, og kommer fra MySQL - men jeg sidder med et lille problem.

Jeg vil gerne begrænse udtrækket, så det kun er det højste ID der kommer ud.

I MySQL vil jeg gøre dette: "SELECT * FROM REKVISITION ORDER BY ID DESC LIMIT 1".

Hvordan gør jeg det, i Oracle?

På forhånd tusind tak, og god jul til alle ;-)
Avatar billede pgroen Nybegynder
21. december 2007 - 07:25 #1
Der er flere forskellige måder at gøre den slags på;

- I det her tilfælde er det simpleste nok:

SELECT * FROM rekvisition
WHERE ID = (SELECT max(id) FROM rekvisition);

(forudsat at ID er en unik nøgle...)
Avatar billede nielle Nybegynder
21. december 2007 - 08:12 #2
Avatar billede webname Nybegynder
21. december 2007 - 08:29 #3
pgroen: Det virker ikke.. Godt bud.

nielle: Jeg kender ikke det højeste, så den skal "order by ID DESC " og så er det kun en der skal hives ud.
Avatar billede holdam Nybegynder
21. december 2007 - 08:44 #4
SELECT * FROM
(SELECT * FROM rekvisition ORDER BY ID DESC)
WHERE ROWNUM=1;
Avatar billede pgroen Nybegynder
21. december 2007 - 09:07 #5
Øh, nu bliver jeg stædig - Hvad er det, der ikke virker?

I øvrigt så vil nielles forslag i dit tilfælde lyde som noget i retning
af:

SELECT * FROM (
SELECT subq.*, rownum n FROM (
  SELECT * FROM rekvisition
                        ORDER BY id DESC) subq
)
WHERE n = 1
/

og holdams forslag virker selvfølgelig også ;-)
Avatar billede nielle Nybegynder
21. december 2007 - 18:51 #6
Direkte tilpasset fra SqlZoo's eksempel:

SELECT * FROM (
    SELECT *, rownum n FROM (
        SELECT * FROM REKVISITION
            ORDER BY ID DESC
    )
)
WHERE n BETWEEN 0 AND 0

Her kan den sidste nok skrives:

WHERE n = 0

(måske er det 1 i stedet for 0)

Det jeg godt kan lide ved SqlZoo's løsning er at den kan anvendes helt generelt på ...LIMIT n, m

Det jeg godt kan lide ved SqlZoo's site er hvordan de sammenlignere syntaksen i forskellige databaser. :^)
Avatar billede nielle Nybegynder
07. januar 2008 - 17:52 #7
webname, er du kommet videre med denne her?
Avatar billede pgroen Nybegynder
30. maj 2008 - 11:25 #8
Lukke ?
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