RAND (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
Devuelve un valor float pseudoaleatorio de 0 a 1, ambos excluidos.
Convenciones de sintaxis de Transact-SQL
Sintaxis
RAND ( [ seed ] )
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 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.
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