PostgreSQL 教程: 生成某个范围内的随机数

您所在的位置:网站首页 sql随机生成数字的函数 PostgreSQL 教程: 生成某个范围内的随机数

PostgreSQL 教程: 生成某个范围内的随机数

2024-06-06 13:30| 来源: 网络整理| 查看: 265

九月 6, 2023

摘要:本教程向您展示如何开发一个用户定义的函数来生成两个数字之间的随机数。

PostgreSQL 提供了返回 0 到 1 之间的随机数的random()函数。以下语句返回 0 到 1 之间的随机数。

SELECT random(); random ------------------- 0.867320362944156 (1 row)

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

SELECT random() * 10 + 1 AS RAND_1_11; rand_1_11 ------------------ 7.75778411421925 (1 row)

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

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

通常,要生成两个整数 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); random_between ---------------- 81 (1 row)

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

SELECT random_between(1,100) FROM generate_series(1,5); random_between ---------------- 37 82 19 92 43 (5 rows)

在本教程中,您学习了如何生成两个数字之间范围内的随机数。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3