I inspiro Medlem sedan sep. 2005 673 inlägg Frågan 1 sep. 2006 20:19 #1 Hej! Jag försöker få de tre sista posterna från en tabell men behålla ordningen på dem. Alltså funkar inte detta riktigt:
select top 3 * from tabell order by id desc
...eftersom den sista posten då kommer först. Jag vill att den tredje sista posten kommer först.
K K@llen Medlem sedan mars 2003 2 667 inlägg ORDER BY id ASC
eller hur menar du? Vilken data har du och vad förväntar du dig för resultat?
I inspiro Medlem sedan sep. 2005 673 inlägg säg att jag har en tabell med 1,2,3,4,5 ... då vill jag få ut 3,4,5 i den ordningen. Sorterar man dem bakifrån och tar ut de första posterna får man ju ut 5,4,3... tänkte om man kunde ändra ordningen redan i sql-satsen så man slipper koda!
I inspiro Medlem sedan sep. 2005 673 inlägg Det löste sig, jag gjorde så här:
SELECT * FROM
(SELECT TOP(3) * FROM Tabell ORDER BY id DESC)
ORDER BY id
K K@llen Medlem sedan mars 2003 2 667 inlägg Ascending (ASC) = stigande sortering
Descending (DESC) = fallande sortering
ASC är default om något inte anges.
I inspiro Medlem sedan sep. 2005 673 inlägg Mer problem. Koden jag skrev här ovan fungerar i sql-server men lägger jag in koden på sidan så får jag följande fel:
System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'ORDER'. at System.Data.SqlClient.SqlConnection.
@nders Medlem sedan juni 2000 32 967 inlägg Du måste lägga till ett namn för din subquery.
SELECT * FROM
(SELECT TOP(3) * FROM Tabell ORDER BY id DESC) [b]foo[/b]
ORDER BY id