Generando valores aleatorios en TS-SQL: con RAND() y con ABS() y NEWID()

Con Diego estábamos necesitando generar valores aleatorios en una base de datos, en otra oportunidad estábamos jugando con RAND() así que posteo por aquí para que me quede a mi como referencia y si alguien lo puede necesitar.

PD:… esta funcionalidad esta en Visual Studio Database Professional pero no lo tengo para probar y necesitamos urgente datos ;)

Ejemplo con RAND()

SELECT
    CantidadAleatoria1 = (SELECT ROUND(((99) * RAND() + 1), 0)),
    CantidadAleatoria2 = (SELECT ROUND(((99) * RAND() + 1), 0)),
    CantidadAleatoria3= (SELECT ROUND(((99) * RAND() + 1), 0)),
    CantidadAleatoria4 = (SELECT ROUND(((99) * RAND() + 1), 0))

Aquí todo bien nos devuelve en cada cantidad un numero…

También encontré este método que nos ayuda en inserts… con ABS y NEWID (gracias a José M. Alarcón)

 

Ejemplo con ABS() y NEWID()

SELECT
        CantidadAleatoria1 = (ABS(CAST(NEWID() as binary(6)) % 100) + 1),
        CantidadAleatoria2 = (ABS(CAST(NEWID() as binary(6)) % 100) + 1),
        CantidadAleatoria3= (ABS(CAST(NEWID() as binary(6)) % 100) + 1),
        CantidadAleatoria4 = (ABS(CAST(NEWID() as binary(6)) % 100) + 1)

 

Para la próxima… (de este mismo tema)

Parece que con Visual Studio Database Professional (gracias al comentario de Ibon Landa en el post de José M. Alarcón) podemos insertar valores aleatorios en nuestras tablas, lo tenemos que probar (queda para otra oportunidad)

Lo poco que pude investigar:

 

Crossposting desde mi blog en Geeks.ms

Published 02-11-2009 12:46 por Jose A. Fernandez

Archivado en: