webForumDet fria alternativet

SQL Sats med asp (VB)?

Databaser & SQL

4 svar · 409 visningar · startad av tomas21

Medlem sedan feb. 2003130 inlägg
Frågan#1

Hej allihop!

Jag har ett litet problem med SQL select som jag inte lyckats lösa.

Säg att jag har dessa rader i en databas. Siffran är id nummret (Counter).

23. Info
37. Info
38. Info
42. Info
44. Info
47. Info
49. Info
51. Info
52. Info
53. Info

Raderna ovan är exakt allting som finns i databasen. Varför id nummret inte är stigande beror på att fält har raderats med databasen (Access databas).

Det jag vill selecta är följande rader 49, 47, 44 och 42. Alltså de första fyra fälten förutom TOP 3. Har försökt ta senaste id nummret-3 och sedan selecta top fyra men det blir ju knas eftersom värdet blir helt fel om man tagit bort vissa fält så att ID nummret inte är stigande. Notera att ID värdena i detta fal är påhittade de kan vara helt annorlunda i verkligheten.

Hur ser SQL satsen ut för mitt problem?

Medlem sedan juni 200032 967 inlägg
#2
SELECT TOP 4 * FROM tabell WHERE ID NOT IN 
   (SELECT TOP 3 ID FROM tabell ORDER BY ID) 
ORDER BY ID

Frågor om SQL välkomnas i SQL-forumet.

Medlem sedan feb. 2003130 inlägg
#3

Grymt löst!

Det fungerar....nu har man lärt sig nya sätt att jobba med SQL hehe :)

Medlem sedan maj 200010 687 inlägg
#4

Ett annat sätt att göra det på som ska vara lite mer effektivt.

SELECT TOP 4 * FROM (
	SELECT TOP 7 * FROM tabell
	ORDER BY ID DESC
) AS x
ORDER BY ID

Kräver dock att man först kollar upp hur många rader tabellen har.

Medlem sedan feb. 200112 078 inlägg
#5

Flyttas från ASP.

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