Nếu theo các số từ 1 đến 10, bạn có nghĩa là bất kỳ số thực nào> =1 và <10, thì thật dễ dàng:
select random() * 9 + 1
Có thể dễ dàng kiểm tra điều này với:
# 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)
Nếu bạn muốn các số nguyên> =1 và <10, thì thật đơn giản:
select trunc(random() * 9 + 1)
Và một lần nữa, kiểm tra đơn giản:
# 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)