RAND (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Devuelve un valor float pseudoaleatorio de 0 a 1, ambos excluidos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

RAND ( [ seed ] )

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Nota:

El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Argumentos

seed

Es una expresión de tipo entero (tinyint, smallint o int) que proporciona el valor de inicialización. Si no se especifica inicialización, el motor de base de datos de SQL Server asigna un valor de inicialización de forma aleatoria. Para un valor de inicialización especificado, el resultado devuelto es siempre el mismo.

Tipos de valores devueltos

float

Comentarios

Las llamadas repetitivas de RAND() con el mismo valor de inicialización devuelven los mismos resultados.

  • Para una conexión, si se llama a RAND() con el valor de inicialización especificado, todas las llamadas posteriores de RAND() generan resultados basados en la llamada a RAND() inicializada. Por ejemplo, la siguiente consulta siempre devuelve la misma secuencia de números.

    SELECT RAND(100), RAND(), RAND();
    
  • Cuando se usa la función RAND() en una consulta UPDATE o INSERT, todas las filas afectadas obtienen el mismo valor.

Ejemplos

En el siguiente ejemplo se producen cuatro números aleatorios diferentes, generados con la función RAND().

DECLARE @counter SMALLINT;

SET @counter = 1;

WHILE @counter < 5
BEGIN
    SELECT RAND() Random_Number
    SET @counter = @counter + 1
END;
GO

Consulte también