webForumDet fria alternativet

Hämta TOP -5 *

Databaser & SQL

6 svar · 629 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

Jag skulle behöva hämta TOP-5. Det vill säga det femte senaste i databasen baserat på ID.

Hur löser jag det smidigast? Jag har några förslag, man kan ju till exempel hämta TOP5, ordna DESC och strunta i att loopa ut resultatet (skriva ut endast en rad) men det känns... sådär :)

Några förslag? Det är MS SQL Server

Medlem sedan dec. 19996 721 inlägg
#2

SELECT TOP 1 kolumner FROM
(SELECT TOP 5 kolumner FROM tabellen ORDER by ID) top5
ORDER BY ID DESC

eller

SELECT TOP 1 kolumner FROM tabellen WHERE ID IN
(SELECT TOP 5 ID FROM tabellen ORDER by ID)
ORDER BY ID DESC

Medlem sedan jan. 20022 440 inlägg
#3

Givetvis, snyggare och lättare att förstå! :)

Medlem sedan jan. 20022 440 inlägg
#4
SELECT TOP 1 ID FROM tabellen WHERE ID IN (SELECT TOP 5 ID FROM tabellen ORDER by ID DESC) ORDER BY ID ASC
Medlem sedan juni 200032 967 inlägg
#5

Antingen fixar du till ditt inlägg eller så accepterar jag emissions som svar istället. Your choice. :)

Medlem sedan jan. 20022 440 inlägg
#6

Du vågar klaga på min ihop skrivning alltså? :)

Tack för hjälpen ;)

Medlem sedan juni 200032 967 inlägg
#7

Du vågar klaga på min ihop skrivning alltså?

Det vågar jag! Jag vågar dock inte klaga på din särskrivning av "ihop skrivning". :)

254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)