webForumDet fria alternativet

randomfunktion i sql

7 svar · 236 visningar · startad av Dino

DinoMedlem sedan sep. 20011 914 inlägg
#1

Hur ser en sql fråga ut för slumpvisst ta ut fem stycken rader från en tabell.

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

testa:

SELECT Top5 * FROM databasen WHERE kolumnen = RAND()
DinoMedlem sedan sep. 20011 914 inlägg
#3

Får inte det att funka.

SebbeMedlem sedan jan. 20032 285 inlägg
#4

Den här koden använder jag:

Set objCon = Server.CreateObject("ADODB.Connection")
' Öppna databas
strSQL = "SELECT COUNT(*) AS stycken FROM tabell"
Set objRS = objCon.Execute(strSQL)
intSt = objRS("stycken")
strDone = ""
i = 0

Do Until blnDone
  intSlump = Int(Rnd * intSt) + 1
  If InStr(strDone,intSlump) = 0 Then
    Set objRS2 = objCon.Execute("SELECT * FROM tabell WHERE ID = " & intSlump)
    Response.Write(objRS("kolumn") & "<br>")
    Set objRS2 = Nothing
    strDone = strDone & " " & intSlump
    i = i + 1
  End If
  If i = 5 Then blnDone = True
Loop

Set objRS = Nothing
objCon.Close
Set objCon = Nothing

Det kanske är lite överflödig, men den funkar. :)

/red Kom på att du använder den med ASP! ;) Annars vet jag inte :p

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Om något inte fungerar:

Ange felmeddelande eller beskriv på vilket sätt det inte fungerar.

Ange vilken DBMS du använder.

DinoMedlem sedan sep. 20011 914 inlägg
#6

Säkert en bra kod, men jag vill helst bara använda mig av en sql fråga eller att det sköts i en sp, ingen serverkod. Tack ändå finns säkert någon annan som kan ha användning av koden. :)ps kör asp.net
LarsG>> Använder SQLServer2000

LarsGMedlem sedan dec. 200012 464 inlägg
#7
select top 5 * from t order by newid()
DinoMedlem sedan sep. 20011 914 inlägg
#8

Tack LarsG, fungerar självklart galant. :)

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)