Che stringa SQL posso usare per estrarre 5 record a caso da una tabella?
Io farei così: "SELECT TOP 5 FROM Tabella"
e imposterei ORDER BY in modo casuale... ma come???
Che stringa SQL posso usare per estrarre 5 record a caso da una tabella?
Io farei così: "SELECT TOP 5 FROM Tabella"
e imposterei ORDER BY in modo casuale... ma come???
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))
Tuttavia questo lo script era impreciso su tabelle all'interno delle quali la chiave primaria avesse dei record cancellati.
Utilizzando invece la funzione NEWID (in genere utilizzata per generare una nuova GUID) è possibile estrarre un record in maniera casuale:
SELECT TOP 1 * FROM tabella ORDER BY NEWID()
ciao
-Nextart.it Graphic Solutions
mi dà questo errore così...
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Undefined function 'NEWID' in expression.
Temo che non funzioni su Access. Funziona però su SQL Server.Originariamente inviato da rudimessi
mi dà questo errore così...
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Undefined function 'NEWID' in expression.