Gerar números aleatórios é uma necessidade importante para a geração de grandes bases de dados de teste. Para maior veracidade nos testes, uma certa aleatoriedade é esperada deste tipo de base de dados. Aí entram em cena as rotinas de geração de números aleatórios.
A função RANDOM() é o método nativo do PostgreSQL para a geração de seqüências de números aleatórios. Neste post vamos apresentar exemplos práticos do uso desta função que podem ser úteis no cotidiano.
Ao se executar a função RANDOM(), é retornado um número aleatório entre zero e 1 com muitas casas decimais. Dependendo da necessidade, pode-se gerar um número positivo, um valor dentro de um determinado determinado intervalo. Valores e intervalos podem assumir valores nulos e negativos com pequenas variações de sintaxe.
* Sintaxe
1 - A sintaxe básica.
SELECT random();
Retorna: 0.896639783866704, 0.516120770014822...
2 - Busca de números com um valor dentro de um intervalo começado com zero é um pouco mais complicada. O exemplo abaixo retorna um valor entre 0 e 99. Para aumentar ou diminuir o intervalo, trocar o número 100 por outro valor. Ajustar as casas decimais do comando CAST se desejar valores fracionários. A função ROUND() elimina decimais indesejadas.
SELECT round(CAST (random()*100 AS NUMERIC),0);
3 - Busca de números com um valor dentro de um intervalo qualquer demanda atenção. O exemplo abaixo retorna um valor entre 27 e 90. Para aumentar ou diminuir o intervalo, trocar os números 27 e 91 por outros valores. Ajustar as casas decimais do comando CAST se desejar valores fracionários.
SELECT 27 + round(CAST (random()*(91-27) AS NUMERIC),0);
4 - Busca de números com um valor dentro de um intervalo começado com valor negativo. Bastante similar ao exemplo anterior.
SELECT -57 + round(CAST (random()*(91+57) AS NUMERIC),0);
4 comentários:
Parabéns pelo artigo, foi muito útil e funcionou perfeitamente!
Muito bom, me ajudou muito. Parabéns.
"Simples" e objetivo.
Parabéns e obrigado.
Excelente aportación. Saludos desde mexico.
Postar um comentário