Als je met getallen tussen 1 en 10 een float bedoelt die>=1 en <10 is, dan is het eenvoudig:
select random() * 9 + 1
Dit kan eenvoudig worden getest met:
# 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)
Als je gehele getallen wilt, dat zijn>=1 en <10, dan is het simpel:
select trunc(random() * 9 + 1)
En nogmaals, eenvoudige 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)