我需要做这样的事情:
UPDATE sometable SET somefield = randomint(1-19);
有可能在informix中做到吗?函数dbms_random_random不起作用。
答案 0 :(得分:1)
从Documentation,您可以使用dbms_random_random()
LIKE THIS:
UPDATE sometable SET somefield = dbms_random_random();
dbms_random_random
是DBMS_RANDOM package附带的例程,可以按照本教程安装How to set up and use DBMS_RANDOM。
答案 1 :(得分:1)
如果加载Hamza Abdaoui中answer标识的已提供但未预安装的扩展名太繁重(或者需要比数据库更多的权限),请考虑使用此代码:< / p>
swap
它在16位正整数范围内生成数字。它基于C标准中提到的“最低限度可接受”的随机数生成器(当然,现在是ISO / IEC 9899:2011,但代码是相同的;自从我上次需要修改它以来已经有一段时间了源代码)。
如果这不可接受,则安装SQL扩展包。如果您需要比Hamza答案下的指针更多的指导,请发表评论。
答案 2 :(得分:0)
随机十进制范围
要在两个值(范围)之间创建随机十进制数,可以使用以下公式:
SELECT RAND()*(b-a)+a;
其中a是最小数字,b是您要为其生成随机数的最大数字。
SELECT RAND()*(25-10)+10;
上面的公式将生成随机十进制数&gt; = 10且&lt; 25.(注意:此公式永远不会返回值25,因为随机函数永远不会返回1.)
随机整数范围
要在两个值(包含范围)之间创建随机整数,可以使用以下公式:
SELECT FLOOR(RAND()*(b-a+1))+a;
其中a是最小数字,b是您要为其生成随机数的最大数字。
SELECT FLOOR(RAND()*(25-10+1))+10;
上面的公式将生成一个介于10和25之间的随机整数。