📜  PostgreSQL – 随机数生成

📅  最后修改于: 2022-05-13 01:57:15.237000             🧑  作者: Mango

PostgreSQL – 随机数生成

PostgreSQL提供了random()函数,它返回一个介于 0 和 1 之间的随机数。在本文中我们将研究开发用户定义函数以生成范围内的随机数的过程。

Syntax:SELECT random();

如果您尝试上述语法,它将导致以下结果:

psql 随机函数

要生成 1 到 10 之间的随机数,请使用以下语句:

SELECT random() * 10 + 1 AS RAND_1_10;

如果您尝试上述语法,它将导致以下结果:



psql 随机函数

如果要将随机数生成为整数,请将floor()函数应用于表达式,如下所示:

SELECT floor(random() * 10 + 1)::int;

上述查询结果如下:

psql 随机函数

通常,要在两个整数 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);

输出:

psql 随机函数

如果要获得两个整数之间的多个随机数,请使用以下语句:

SELECT random_between(1,100)
FROM generate_series(1,5);

输出: