Datos personales

Mi foto
Colonia Caroya, Córdoba, Argentina
Ingeniero en Sistemas de Información

03 julio 2008

¿Cómo obtener filas al azar desde una base de datos?

Alguna vez por alguna rara razón nos encontraremos con la necesidad de extraer registros de una base de datos de manera desordenada y que se vuelva a desordenar en cada consulta, es decir, obtener datos de una manera totalmente aleatoria en cada consulta.

Y como se imaginaran cada motor tendrá su sintaxis o truco para lograr esto. Aquí pongo el modo de lograr esto en Mysql, PostgreSQL, SQL Server, IBM DB2 y Oracle.

  • MySQL
SELECT column FROM table
ORDER BY RAND()
LIMIT 1

  • PostgreSQL
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

  • SQL Server
SELECT TOP 1 column FROM table
ORDER BY NEWID()

  • IBM DB2
SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

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


Saludos..

marce

No hay comentarios: