Véletlen értékek generálása alapvető fejlesztői technika. Használjuk teszteléshez, játékokhoz, ajánlók generálásához. Mi a helyzet akkor, ha egy Microsoft SQL szerver táblából szeretnénk néhány - de egymástól különböző - random rekordot visszaadni?
A legkézenfekvőbb megoldás, ha véletlen sorba rendezzük a tábla sorait, és leválogatjuk az első N darabot. Ebben a fiktív példában például ötöt:
SELECT TOP 5 Oszlop1, Oszlop2, Oszlop3
FROM Tabla
WHERE Feltetel = 1
ORDER BY NEWID() DESC
Az egyetlen trükk a táblai sorainak véletlen sorrendbe rendezése. Ehhez a beépített - egyébként random uniquidentifier generálására használt - newid() függvényt használhatom.
A nagy kérdés, hogy ez valóban a legjobb módszer? Ti ismertek jobbat?