sql server 生成随机数 rand函数

本文介绍如何使用SQL Server中的RAND函数生成指定区间的随机整数及布尔值。通过ROUND和CAST函数配合RAND函数实现随机数的生成,并提供实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值