miércoles, 8 de febrero de 2012

Pedazo de...

Una muestra de cómo eran las cosas antes, pero no "tan antes" según se mire: el primero son 4 KB y el segundo un disco duro de 5 MB de época.




 Desde retronaut.co

miércoles, 1 de febrero de 2012

Recuperar filas aleatoriamente de una tabla con Transact-SQL

Yo lo he leído en el blog de James D. McCaffrey pero no tengo más mérito, es uno de los muchos resultados de su búsqueda en Google sugerida por un alumno que ya lo había encontrado antes. Sea como sea, no conocía este método para obtener una fila de una tabla de forma aleatoria.

Se basa en una combinación de newid() y top(). La primera función devuelve un valor uniqueidentifier, valioso para crear datos ficticios con los que probar una base de datos, por ejemplo. O para lo que nos ocupa:

select @result = (select top(1) pid from @mytable order by newid() )



Ya puestos, como sospecho que top() es la respuesta de Microsoft al limit de MySQL, también he buscado lo mismo para este motor. No pierdo tiempo, la primera página que me ha ofrecido Google, de El blog de Neurotic:

SELECT * FROM nombre_tabla WHERE condicion
ORDER BY RAND()
LIMIT 1; 


Ahora ya que cada cual se meta o no en la guerra de si una es más elegante, simple, intuitiva, etc. que la otra.