我必须在包含case语句的范围内生成随机值。
例如,我们有一个产品表如下:
产品
电视
冰箱
笔记本电脑
现在我需要生成COSTPRICE,SALEPRICE用于测试目的。由于产品的价格各不相同,我需要生成一个范围内的值。 例如, 如果值是TV,则生成1000到1100之间的值 要么 如果值为Refrigerator,则生成800-1000之间的值 等等。
任何想法/功能我如何使用SQL来解决这个问题? 我知道函数RAND(),但我不能用它生成范围值。
请帮助我至少让自己找到解决方案。感谢
答案 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())