Mi e’ capitato, anche spesso, di dover selezionare una riga casuale da una tabella: senza dover scomodare il linguaggio di programmazione utilizzato per l’accesso ai dati, possiamo effettuare l’operazione direttamente da SQL.

MySQL:

SELECT * FROM tabella

ORDER BY RAND()

LIMIT 1

Microsoft SQL Server:

SELECT TOP 1 * FROM tabella

ORDER BY NEWID()

PostgreSQL:

SELECT * FROM tabella

ORDER BY RANDOM()

LIMIT 1

Oracle:

SELECT * FROM

( SELECT * FROM tabella

ORDER BY dbms_random.value )

WHERE rownum = 1

IBM DB2:

SELECT * FROM tabella

ORDER BY RAND()

FETCH FIRST 1 ROWS ONLY