如何使用informix db中的随机整数值更新字段

时间:2018-01-22 08:00:53

标签: sql informix

我需要做这样的事情:

UPDATE sometable SET somefield = randomint(1-19);

有可能在informix中做到吗?函数dbms_random_random不起作用。

enter image description here

3 个答案:

答案 0 :(得分:1)

Documentation,您可以使用dbms_random_random() LIKE THIS:

UPDATE sometable SET somefield = dbms_random_random();

dbms_random_randomDBMS_RANDOM package附带的例程,可以按照本教程安装How to set up and use DBMS_RANDOM

答案 1 :(得分:1)

如果加载Hamza Abdaouianswer标识的已提供但未预安装的扩展名太繁重(或者需要比数据库更多的权限),请考虑使用此代码:< / 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之间的随机整数。

Check the Source