SQL Tips: Selezionare una riga casuale da una tabella



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

Published: May 22 2007

  • category: