यदि 1 और 10 के बीच की संख्याओं से आपका मतलब किसी भी फ़्लोट से है जो>=1 और <10 है, तो यह आसान है:
select random() * 9 + 1
इसका आसानी से परीक्षण किया जा सकता है:
# 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)
यदि आप पूर्णांक चाहते हैं, जो कि>=1 और <10 हैं, तो यह आसान है:
select trunc(random() * 9 + 1)
और फिर, सरल परीक्षण:
# 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)