Per estrarre un record casuale utilizzando SQL Server, possiamo sfruttare l'apposita funzione rand(), che genera un numero casuale.
SELECT TOP 1 * FROM tabella WHERE ID = (rand() * (SELECT MAX(ID) FROM tabella))
Nel caso in cui ID sia una identity e non ci siano buchi nel database, il discorso è ovviamente molto semplice.
Nel caso di buchi, si può ovviare mettendo come clausala ID >= anzichè ID =, ed ordinando per il campo ID.
In questo modo nel caso in cui alcuni valori non fossero presenti, verrebbe preso il primo valore disponibile.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.