用指定范围的随机数批量更新字段值的sql

用指定范围的随机数批量更新字段值的sql

用指定范围的随机数批量更新字段值的sql,供大家学习参考。 不知道大家是否遇到这样的情况,客户报怨访问量太低,而你又举目无助,哈,此时用rand()生成随机数据去造些假数据,便是解燃眉之急的好办法了。

闲言少叙,书归正表,我们开始今天的学习。

第一种方法。

1、了解下sql的随机函数 随机数的SQL函数为rand(): select rand(); 而rand()生成的是0-1之间的小数。

例如:0.644341629331498

1)、得到10之间的随机整数:

代码示例:

Select round(rand()*9+1,0)

2)、n到m之间的随机整数(n更新每一条数据的某一字段:(千万不要在重要数据上操作,慎重)

代码示例:

update [test].[dbo].[table]
set [table.rand] = cast(rand()*(999999-100000)+100000 as float(6))

结果会导致这个字段变成相同的一个随机值。

如: 777 777 777

3、开始更新

代码示例:

第二种方法。

代码示例:

update [test].[dbo].[table]
set [table.rand] = cast(rand(checksum(newid()))*(999999-100000)+100000 as float(6))

附:

代码示例:

select newid()  如:57C26BA5-8304-4877-B5D4-256C80428B94
select rand() 如:0.029051900701824
select checksum(500) 如:500
select checksum(newid()) 如:35757911
select rand(checksum(newid())) 如:0.657911662715189      --新的随机数,但不会重复
select rand(checksum(newid()))*(999999-100000)+100000 如:881621.124049528
select cast(rand(checksum(newid()))*(999999-100000)+100000 as float(6)) 如:609545.7

示例

随机生成位于中国范围内的经纬度

UPDATE [dbo].[enterprise]
    SET [latitude] = cast(12 + 42 *rand(checksum(newid())) as float(6))
    ,[longitude] =cast(52.43 + 99*rand(checksum(newid())) as float(6))

发表评论

您的电子邮箱地址不会被公开。

CAPTCHAis initialing...