

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Função RANDOM
<a name="RANDOM"></a>

A função RANDOM gera um valor aleatório entre 0,0 (inclusive) e 1,0 (exclusivo). 

## Sintaxe
<a name="RANDOM-synopsis"></a>

```
RANDOM()
```

## Tipo de retorno
<a name="RANDOM-return-type"></a>

RANDOM retorna um número de DOUBLE PRECISION. 

## Exemplos
<a name="RANDOM-examples"></a>

1. Compute um valor aleatório entre 0 e 99. Se o número aleatório é de 0 a 1, essa consulta produz um número aleatório de 0 a 100: 

   ```
   select cast (random() * 100 as int);
   
   INTEGER
   ------
   24
   (1 row)
   ```

1. Recupere uma amostra aleatória uniforme de 10 itens:

   ```
   select * 
   from sales
   order by random()
   limit 10;
   ```

   Agora recupere uma amostra aleatória de 10 itens, mas escolha os itens em proporção aos preços. Por exemplo, um item cujo preço é o dobro de outro tem duas vezes mais probabilidade de aparecer nos resultados de consulta:

   ```
   select * 
   from sales
   order by log(1 - random()) / pricepaid
   limit 10;
   ```

1. Este exemplo usa o comando SET para definir um valor SEED para que RANDOM gere uma sequência previsível de números. 

   Primeiro, retorne três inteiros RANDOM sem definir o valor de SEED primeiro: 

   ```
   select cast (random() * 100 as int);
   INTEGER
   ------
   6
   (1 row)
   
   select cast (random() * 100 as int);
   INTEGER
   ------
   68
   (1 row)
   
   select cast (random() * 100 as int);
   INTEGER
   ------
   56
   (1 row)
   ```

   Agora, defina o valor de SEED como `.25` e retorne mais três números RANDOM: 

   ```
   set seed to .25;
   select cast (random() * 100 as int);
   INTEGER
   ------
   21
   (1 row)
   
   select cast (random() * 100 as int);
   INTEGER
   ------
   79
   (1 row)
   
   select cast (random() * 100 as int);
   INTEGER
   ------
   12
   (1 row)
   ```

   Por fim, redefina o valor de SEED como `.25` e verifique se RANDOM retorna os mesmos resultados que as três chamadas anteriores: 

   ```
   set seed to .25;
   select cast (random() * 100 as int);
   INTEGER
   ------
   21
   (1 row)
   
   select cast (random() * 100 as int);
   INTEGER
   ------
   79
   (1 row)
   
   select cast (random() * 100 as int);
   INTEGER
   ------
   12
   (1 row)
   ```