用指定范围的随机数批量更新字段值的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))