Toon posts:

[MS SQL Server 2k] Select random 1 row *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kan ik een willekeurige row uit mijn MS SQL database selecteren. Heb wat topics doorgelezen, maar kom er niet uit. Het schijnt dat de LIMIT alleen in MySQL werkt?
Deze rij moet aan de criteria "zichtbaar = 1" voldoen. Iedere rij heeft een RowId, maar hier zitten wel gaten in.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

In hoeverre kom je er niet uit na [google=MSSQL random 1 record] ?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • MoBi
  • Registratie: Oktober 1999
  • Laatst online: 26-04 13:50
SELECT * FROM naam WHERE rowid = newid() AND zichtbaar = 1

Volgens mij zit je te lullen, want ik voel nattigheid....


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
code:
1
2
3
4
SELECT TOP 1 * 
FROM Tabel 
WHERE zichtbaar = 1
ORDER BY newid()

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Dat is toch niet een random row ? .. je pakt nu gewoon de eerste row.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op zaterdag 05 februari 2005 @ 20:21:
Dat is toch niet een random row ? .. je pakt nu gewoon de eerste row.
Nee hoor, test maar eens :)

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

NewId() geeft volgens de docs

NEWID
Creates a unique value of type uniqueidentifier.

Dus ik zie zo 1 2 3 niet waarom je een random record terug zou moeten krijgen. Select Top 1 * pakt dan het eerste record, en Order by sorteer op basis van die nieuwe uuid? . .. :? wazig

Verwijderd

SELECT * FROM foobar ORDER BY RAND() LIMIT 1

  • satyriasis
  • Registratie: Januari 2000
  • Laatst online: 08-05 10:48
die laatste dat is hem :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Voor MS SQL? Wedden van niet? ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Het klopt inderdaad wel, query analyzer geeft netjes random records terug, maar de gedachte erachter is mij een beetje vreemd.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op zaterdag 05 februari 2005 @ 22:30:
Het klopt inderdaad wel, query analyzer geeft netjes random records terug, maar de gedachte erachter is mij een beetje vreemd.
NewId() wordt voor iedere rij in de resultset geevalueerd, daarna wordt de sortering op basis van de guid gedaan, door nu alleen het eerste record te selecteren krijg je een random rij.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15-05 14:40

gorgi_19

Kruimeltjes zijn weer op :9

Eventjes titel iets verduidelijkt, zodat men niet aan gaat komen met MySQL-only queries :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • foske
  • Registratie: Juli 2001
  • Laatst online: 22:08
Nog ff wat kracht bijzetten aan de newid()

http://www.sqlteam.com/item.asp?ItemID=8747

zowiezo een goede resource voor je MSSQL vragen
Pagina: 1