PostgreSQL – 随机数生成
PostgreSQL提供了random()函数,它返回一个介于 0 和 1 之间的随机数。在本文中,我们将研究开发用户定义函数以生成范围内的随机数的过程。
Syntax:SELECT random();
如果您尝试上述语法,它将导致以下结果:
要生成 1 到 10 之间的随机数,请使用以下语句:
SELECT random() * 10 + 1 AS RAND_1_10;
如果您尝试上述语法,它将导致以下结果:
如果要将随机数生成为整数,请将floor()函数应用于表达式,如下所示:
SELECT floor(random() * 10 + 1)::int;
上述查询结果如下:
通常,要在两个整数 l 和 h 之间生成随机数,请使用以下语句:
SELECT floor(random() * (h-l+1) + l)::int;
要创建一个用户生成的函数,该函数返回两个数字 l 和 h 之间的随机数:
CREATE OR REPLACE FUNCTION random_between(low INT ,high INT)
RETURNS INT AS
$$
BEGIN
RETURN floor(random()* (high-low + 1) + low);
END;
$$ language 'plpgsql' STRICT;
以下语句调用random_between()函数并返回 1 到 100 之间的随机数:
SELECT random_between(1,100);
输出:
如果要获得两个整数之间的多个随机数,请使用以下语句:
SELECT random_between(1,100)
FROM generate_series(1,5);
输出: