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 https://stackoverflow.com/a/20597328/61305 .
来源: http://www.bubuko.com/infodetail-2631527.html