RAND (Transact-SQL)
En este artículo
Se aplica a: SQL Server
Base de datos de Azure SQL
Azure SQL Managed Instance
Azure Synapse Analytics
Devuelve un valor float pseudoaleatorio de 0 a 1, ambos excluidos.
Convenciones de sintaxis de Transact-SQL
RAND ( [ seed ] )
Nota
El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
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.
float
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 deRAND()
generan resultados basados en la llamada aRAND()
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 consultaUPDATE
oINSERT
, todas las filas afectadas obtienen el mismo valor.
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