Selecionando um valor aleatório no SQL Server

Obtendo valor aleatório no banco de dados MS-SQL Server – RAND()

Dicas de Microsoft SQL Server
Valor aleatório no SQL Server com Rand()

Neste post, veremos como obter um valor aleatório no SQL Server utilizando a função RAND() do Transact-SQL.

Primeiramente, vamos conhecer a sintaxe desta função.

RAND : Sintaxe

RAND ( [ seed ] )

Argumentos

seed
É um número inteiro expressão (tinyintsmallint ou int) que fornece o valor de semente. 
Porém se seed não estiver especificado, o Mecanismo de Banco de Dados do SQL Server atribuirá um valor de semente aleatório. 
Por outro lado, para um valor de seed (semente) especificado, o resultado retornado é sempre o mesmo.

Retorno da Função RAND()

A função RAND retorna um valor float e outra característica é que ela só retorna números entre 0 e 1

SELECT RAND()

(Exemplo resultado.: 0.494443).

Por outro lado, uma observação importante sobre esta função é que chamadas repetitivas de RAND() com o mesmo valor de seed, retornam os mesmos resultados.

Por exemplo, a consulta a seguir sempre retornará a mesma sequência de números.

SELECT RAND(100), RAND(), RAND()



Como fazemos para que a função RAND() retorne valor inteiro ?

Porém, para fazer a função RAND do SQL server retornar um número inteiro, basta utilizarmos um pouco de matemática e converte-la em um inteiro através da função CAST()

Número aleatório SQL Server entre 0 e 9 com RAND()

Assim, para fazermos com que o SQL Server retorne um valor inteiro entre 0 a 9, basta multiplicarmos o valor obtido com rand por 10, utilizando o seguinte script T-SQL:

SELECT CAST(RAND() * 10 AS INTEGER)

Número inteiro aleatório SQL Server entre 0 e 19 : Função RAND()

Então, se você necessita de um número inteiro entre 0 a 19, utilize o script Transact-SQL

SELECT CAST(RAND() * 20 AS INTEGER)

Portanto, para obter outras faixas basta alterar o múltiplo na expressão do script TSQL.

Obtendo quatro números aleatórios diferentes que são gerados pela função RAND.

Por fim, podemos obter 4 números diferentes, usando o script T-SQL abaixo:

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

Desafio RAND + Transact SQL

Finalmente como desafio e desenvolvimento, elabore um script T-SQL que forneça 4 números inteiros diferentes.

Poste seu script aqui nos comentários 👇🏻 👍🏻

Materiais e leituras que recomendamos para você:

Referência:
https://docs.microsoft.com/pt-br/sql/t-sql/functions/rand-transact-sql?view=sql-server-ver15

Obrigado

Espero que este tutorial possa lhe ajudar a aumentar seus conhecimentos no banco de dados SQL Server.

Então, se você gostou desta publicação, compartilhe com seus amigos ou nos acompanhe pelas redes sociais.

Você pode nos ajudar a criar mais conteúdos como este. Como ?

Prestigie nossos anunciantes conhecendo seus produtos e serviços.

Como resultado, você certamente ajuda a gente a crescer e a produzir mais conteúdos como este.

Vamos lá, é simples e rápido

Obrigado e um grande abraço

Livros sobre Banco de Dados

Cadastre-se em nossa Newsletter de Tecnologia

Inscreva-se gratuitamente e seja o primeiro a ser notificado sobre novas atualizações sobre Tecnologia.

Posts Similares