当前位置:  数据库>sqlserver

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

    来源: 互联网  发布时间:2014-08-29

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

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

代码示例:
-- 更新 my_table 的 test_rand 字段
--1、声明游标 指定有表指定的是数据库的哪一个字段.(在这里只能选择作为主键的id)
DECLARE @user_id varchar(36) --可写多个
DECLARE user_extension_cursor CURSOR
FOR
SELECT id --可写多个
FROM [test].[dbo].[table] --可写条件
 
--2、需要用FETCH来获取游标
OPEN user_extension_cursor;
FETCH NEXT FROM user_extension_cursor
INTO @user_id  --可写多个
 
--3、循环更新字段的值
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE [test].[dbo].[table]
SET [table].[rand] = cast(rand()*(m-n)+n as float(6))
WHERE id = @user_id  --可写多个
 
FETCH NEXT FROM user_extension_cursor
INTO @user_id  --可写多个
END
 
CLOSE user_extension_cursor;
DEALLOCATE user_extension_cursor;

第二种方法。
 

代码示例:
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

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 提取指定范围的内容
  • php mysql查询指定范围内日期
  • SQL Server中选出指定范围行的SQL语句代码
  • php date函数格式化输出指定范围的时间
  • php查询指定日期范围内数据
  • 获取指定范围行的sql语句和存储过程
  • linux shell实现获取用户输入指定范围的单个字符的两种方法
  • C++ Lists(链表) 成员 remove_if():按指定条件删除元素
  • 如何用shell实现将指定文件中的指定的字符串替换为我指定的另外的字符串
  • C++ Maps 成员 count():返回指定元素出现的次数
  • 求一SHELL(Linux下批量将指定目录文件传到指定远程服务器的指定目录)!
  • C++ Double Ended Queues(双向队列) 成员 at():返回指定的元素
  • linux如何给指定用户赋予指定文件的权限
  • C++ I/O 成员 ignore():读取字符并忽略指定字符
  • 怎样读取指定内存地址处指定长度的内存数据???(
  • C++ Bitsets 成员 test():返回指定位的状态
  • Applet指定codebase,怎样将其指定到classpath下?不用绝对路径!
  • C++ MultiMaps 成员 equal_range():返回指向元素的key为指定值的迭代器对
  • tar解压解包指定文件到指定目录
  • C++ Vectors 成员 erase():删除指定元素
  • 请教如何在指定目录下查找包含指定文字的文件
  • C++ Vectors 成员 at():返回指定位置的元素
  • linux 指定用户只能读写指定的文件夹
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 如何查看系统中有多少个组?有多少个用户?如何把指定用户加到指定组中?
  • Linux下通过rpm安装软件详细介绍以及如何将软件安装到指定目录
  • Linux查找包含指定文字的文件(linux查找指定文件)
  • linxu-如何拷贝指定类型的文件到指定的目录下呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3