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