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) 
原文地址:https://www.cnblogs.com/chucklu/p/9138402.html