Monday, April 23, 2007

select random

And they call SQL a "standard" ;)

Select a random row with MySQL:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

Select a random row with PostgreSQL:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Select a random row with Microsoft SQL Server:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

Select a random row with IBM DB2

SELECT column FROM table
ORDER BY RAND()
FETCH FIRST 1 ROWS ONLY

Select a random record with Oracle:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

Note. I'm not complaining too seriously, in my work I mostly use Oracle (occasionally DB/2 but that can't be helped). I am aware of the wealth of functionality available at Oracle over say, MySQl, which mostly excuses the differing syntax.

0 comments: