RAND¶
说明¶
返回 0 到 1 之间的 FLOAT8 类型的随机数。
返回值¶
生成的0到1之间的随机数。
注解
- 在实际应用中,需要用 SETSEED 设置一下随机种子,避免每次产生的随机数都是一样。
- 不带参数的RAND函数,在不用SETSEED指定随机种子的情况下,每次产生的随机数不同,如果用SETSEED指定相同的随机种子,则产生相同的随机数。
- 带参数的RAND函数,随机种子的选择只与参数有关,参数不同则产生的随机数不同,相同参数产生的随机数相同。
示例1: 用 RAND 生成随机数(不带参数)¶
不带参数的rand函数:
--当不设置随机种子时,rand函数产生的随机数不同
SELECT rand();
RAND
-------------------
0.159437736570573
(1 row)
SELECT rand();
RAND
-------------------
0.650809112307992
(1 row)
--当设置随机种子后,rand函数产生的随机数由随机种子的值决定
SELECT SETSEED(100);
SETSEED
---------
0
(1 row)
--SETSEED设置随机种子时,只对下一次rand有效
SELECT rand();
RAND
--------------------
0.0905971695159549
(1 row)
SELECT rand();
RAND
-------------------
0.290855555930573
SELECT SETSEED(100);
SETSEED
---------
0
(1 row)
SELECT rand();
RAND
--------------------
0.0905971695159549
(1 row)
示例2: 用 RAND 生成随机数(带参数)¶
带参数的rand函数:
--带参数的rand函数,随机结果的产生只与参数有关
SELECT rand(100);
RAND
-------------------
0.011139255958739
(1 row)
SELECT rand(100);
RAND
-------------------
0.011139255958739
(1 row)
--带参数的rand函数,随机结果的产生与SETSEED函数无关
SELECT SETSEED(200);
SELECT rand(100);
RAND
-------------------
0.011139255958739
(1 row)
SELECT rand(200);
RAND
--------------------
0.0210882900479141
(1 row)