簡體   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