PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Gere um número aleatório no intervalo de 1 a 10


Se por números entre 1 e 10 você quer dizer qualquer float>=1 e <10, então é fácil:
select random() * 9 + 1

Isso pode ser facilmente testado com:
# select min(i), max(i) from (
    select random() * 9 + 1 as i from generate_series(1,1000000)
) q;
       min       |       max
-----------------+------------------
 1.0000083274208 | 9.99999571684748
(1 row)

Se você quer números inteiros, que são>=1 e <10, então é simples:
select trunc(random() * 9 + 1)

E novamente, teste simples:
# select min(i), max(i) from (
    select trunc(random() * 9 + 1) as i from generate_series(1,1000000)
) q;
 min | max
-----+-----
   1 |   9
(1 row)