我们想要一个给定任意大小的随机正整数的SQL(不是PL / pgSQL)函数,返回一个介于0和0之间的整数。 999999包括在内。返回值应尽可能保留参数的随机性。
答案 0 :(得分:0)
在PostgresSQL中:
设置种子设置下次调用随机函数时的随机数:
setseed (arg)
此语句将生成[0:999999]范围内的数字
SELECT floor(random()*(999999-0+1))+10;
在Python中:
import random
def get_rand_int(arg)
random.seed(arg)
return random.randrange(0,100000)
使用随机
时需要注意的事项" Mersenne Twister是现存最广泛测试的随机数发生器之一。但是,完全确定性,它不适用于所有目的,并且完全不适合加密目的。" https://docs.python.org/3/library/random.html?highlight=random#random.random
在SQL中:
这将使用[seed]作为种子值返回介于999999和0之间的整数。
SELECT FLOOR(RAND([seed])*(999999-0));