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 ;-)
Annonceindlæg fra Infor
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...)
21. december 2007 - 08:12
#2
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.
21. december 2007 - 08:44
#4
SELECT * FROM (SELECT * FROM rekvisition ORDER BY ID DESC) WHERE ROWNUM=1;
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å ;-)
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. :^)
07. januar 2008 - 17:52
#7
webname, er du kommet videre med denne her?
Computerworld tilbyder specialiserede kurser i database-management