Partilhar via


RAND (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics

Retorna um valor float pseudoaleatório de 0 a 1, exclusivo.

Convenções de sintaxe de Transact-SQL

Sintaxe

RAND ( [ seed ] )

Observação

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Argumentos

seed

É um número inteiro expressão (tinyint, smallint ou int) que fornece o valor de semente. Se seed não estiver especificado, o Mecanismo de Banco de Dados do SQL Server atribuirá um valor de semente aleatório. Para um valor de semente especificado, o resultado retornado é sempre o mesmo.

Tipos de retorno

float

Comentários

Chamadas repetitivas de RAND() com o mesmo valor de semente retornam os mesmos resultados.

  • Para uma conexão, se RAND() for chamada com uma valor de semente especificado, todas as chamadas subsequentes de RAND() produzirão resultados com base na chamada de RAND() propagada. Por exemplo, a consulta a seguir sempre retorna a mesma sequência de números.

    SELECT RAND(100), RAND(), RAND();
    
  • Quando você usa a função RAND() em uma consulta UPDATE ou INSERT, todas as linhas afetadas obtêm o mesmo valor.

Exemplos

O exemplo a seguir produz quatro números aleatórios diferentes gerados pela função RAND().

DECLARE @counter SMALLINT;

SET @counter = 1;

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

Confira também