sql server 生成隨機數 rand函數


https://docs.microsoft.com/en-us/sql/t-sql/functions/rand-transact-sql?view=sql-server-2017

在某一個區間內生成隨機數

https://stackoverflow.com/questions/7878287/generate-random-int-value-from-3-to-6

原理,rand函數會生成一個在0到1之間的隨機float數。

用這個隨機數*區間范圍+最小值,就得到一個區間范圍內的隨機數。然后用round函數去掉小數點后面的。

DECLARE @Random INT;
DECLARE @Upper INT;
DECLARE @Lower INT
SET @Lower = 3 ---- The lowest random number
SET @Upper = 7 ---- One more than the highest random number
SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SELECT @Random

 

 

生成布爾值

https://stackoverflow.com/questions/20597269/how-to-generate-random-boolean-value-in-sql-server-2008

If you are only generating one row, you could use something as simple as:

SELECT CAST(ROUND(RAND(),0) AS BIT)

However, if you are generating more than one row, RAND() will evaluate to the same value for every row, so please see Martin Smith's answer.

也可以是這樣

SELECT ROUND(RAND(),0) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM