生成范围内的数字 - SQL

时间:2014-04-28 19:16:17

标签: mysql sql random numbers

我必须在包含case语句的范围内生成随机值。

例如,我们有一个产品表如下:

产品
电视
冰箱
笔记本电脑

现在我需要生成COSTPRICE,SALEPRICE用于测试目的。由于产品的价格各不相同,我需要生成一个范围内的值。  例如, 如果值是TV,则生成1000到1100之间的值 要么  如果值为Refrigerator,则生成800-1000之间的值 等等。

任何想法/功能我如何使用SQL来解决这个问题? 我知道函数RAND(),但我不能用它生成范围值。

请帮助我至少让自己找到解决方案。感谢

1 个答案:

答案 0 :(得分:1)

所以你基本上是在找这样的东西:

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())
相关问题