sql server 生成随机数 rand函数

Posted Chuck Lu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.

 

以上是关于sql server 生成随机数 rand函数的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 中rand()是产生随机数,为啥还要设置种子?

SQL Server 中的伪随机可重复排序(不是 NEWID() 和 RAND())

c++生成随机数详解(包含可执行代码)

如何使用 spark.sql 将表列传递给 rand 函数?

求一个生成四位随机数的PHP代码

(rand函数)随机数的生成(C语言)