繁体   English   中英

生成范围内的数字-SQL

[英]Generate numbers in range — SQL

我必须生成带有case语句的范围内的随机值。

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

产品
电视
冰箱
笔记本电脑

现在,我需要生成COSTPRICE,SALEPRICE以进行测试。 由于产品的价格各不相同,因此我需要生成一个范围内的值。 例如,如果值为TV,则生成1000到1100之间的值;如果值为Refrigerator,则生成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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM