webForumDet fria alternativet

Översta raderna..

4 svar · 223 visningar · startad av kallepocket

kallepocketMedlem sedan sep. 200182 inlägg
#1

Jag har en databas med nyheter...

När jag sedan vill visa dem på startsidan så sorterar jag dem efter ett antal kriterier bland annat datum o så...

Min fråga är om man med SQL kan välja ut bara de 4 första raderna exempelvis eller om detta måste göras i exv ASP kod?

Jag vill minnas att man ska kunna skriva nåt i stil med:

SELECT TOP 4 rubrik, text, datum FROM tabell WHERE.......

Stämmer detta att det går att göra på något liknande sätt? Jag får det att fungera om man skriver TOP 1, men inte annars, vad beror detta på?

Hur ska man skriva egentligen?

Tack

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Syntaxen är som du har skrivit. För att top skall vara relevant så måste du ha med en order by också.

Sen så är det ju alltid trevligt att få veta på vilket sätt det inte fungerar.

kallepocketMedlem sedan sep. 200182 inlägg
#3

Joo, jag har såklart en order by oxå...

Det fungerar inte genom att den tar allting som jag valut ut, inte bara de fyra översta...
När jag skriver TOP 1 så tar den bara den översta, annars tar den alla i tabellen som stämmer överens med where-statementet...

Alltså: TOP 1 returnerar det översta enbart...
TOP 4 returnerar alla i tabellen, oavsett hur många det är...

Vad göra? Är det Access som inte gillar vanlig SQL kod eller är det jag som är dum?? :(

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Det här är inte vanlig sql-kod. Den är specifik för sql-server och Access.

Top i Access fungerar så att den tar med alla delningar också, t.ex. om du har 20 poster och alla har senaste datum så kommer top 4 att returnera alla dessa poster.

Det är kanske enklast att lägga in en begränsning i din utskriftsloop, alternativt så kan du lägga till ytterligare kolumner i din order by så att du får en unik kombination.

kallepocketMedlem sedan sep. 200182 inlägg
#5

Aaaha... då förstår jag...
Man kan alltså inte välja ut de fyra över raderna enbart i SQL... då vet jag... var bara det jag undrade egentligen...

Tack ska ni ha!

- Anders

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
122 ms — hämta tråd, inlägg och bilagor (db)