Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 生成范围内的数字--SQL_Mysql_Sql_Random_Numbers - Fatal编程技术网

Mysql 生成范围内的数字--SQL

Mysql 生成范围内的数字--SQL,mysql,sql,random,numbers,Mysql,Sql,Random,Numbers,我必须用case语句生成一个范围内的随机值 例如,我们的产品表如下: 产品 电视 冰箱 笔记本电脑 现在我需要生成COSTPRICE,SALEPRICE,用于测试。由于产品的价格各不相同,我需要在一定范围内创造价值。 例如 如果值为TV,则生成1000到1100之间的值 或 如果该值为“冰箱”,则生成800-1000之间的值 等等 有什么想法/功能我可以如何使用SQL实现这一点? 我知道函数RAND(),但我不能用它生成范围值 请帮助我,至少让我自己找到解决办法。谢谢那么你基本上是在找这样的东西

我必须用case语句生成一个范围内的随机值

例如,我们的产品表如下:

产品
电视
冰箱
笔记本电脑

现在我需要生成COSTPRICE,SALEPRICE,用于测试。由于产品的价格各不相同,我需要在一定范围内创造价值。 例如 如果值为TV,则生成1000到1100之间的值 或 如果该值为“冰箱”,则生成800-1000之间的值 等等

有什么想法/功能我可以如何使用SQL实现这一点? 我知道函数RAND(),但我不能用它生成范围值


请帮助我,至少让我自己找到解决办法。谢谢

那么你基本上是在找这样的东西吗:

SELECT CASE WHEN Product='TV' THEN (1000 + CONVERT(INT, (101)*RAND())) ELSE CASE WHEN Product='Refrigerator' THEN (800 + CONVERT(INT, (201)*RAND())) ELSE 0 END END FROM ProductTable
当涉及到@min和@max之间的随机数时,想法非常简单。请参见以下内容:

SELECT @min + CONVERT(INT, (@Max-@min+1)*RAND())

尝试:<代码> MyValue+RAND()*范围< /代码>。@ Gordon Link,你是说,如果我们把电视作为例子,那么1000 + RAND()* 1100。是吗?电视的范围是
100
,而不是
1100
<代码>1100是最大值。@GordonLinoff你说得对!!非常感谢你!