PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Générer un nombre aléatoire dans la plage 1 - 10

Si par nombres compris entre 1 et 10, vous entendez tout flottant>=1 et <10, alors c'est facile :

select random() * 9 + 1

Cela peut être facilement testé avec :

# 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)

Si vous voulez des entiers, c'est-à-dire>=1 et <10, alors c'est simple :

select trunc(random() * 9 + 1)

Et encore une fois, simple test :

# 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)