Author Topic: SQL to Select a random row from a database table  (Read 6049 times)

Offline admin

  • Administrator
  • Sr. Member
  • *****
  • Posts: 296
    • View Profile
SQL to Select a random row from a database table
« on: November 12, 2008, 05:20:10 PM »
There are lots of ways to select a random record or row from a database table. Here are some example SQL statements that don't require additional application logic, but each database server requires different SQL syntax.

Select a random row with MySQL:
Code: [Select]
SELECT column FROM table
ORDER BY RAND()
LIMIT 1

Select a random row with PostgreSQL:
Code: [Select]
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Select a random row with Microsoft SQL Server:
Code: [Select]
SELECT TOP 1 column FROM table
ORDER BY NEWID()

Select a random row with IBM DB2
Code: [Select]
SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Select a random record with Oracle:
Code: [Select]
SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1