sql如何将一个范围内的数据随机修改(例如:将1--100的数据改为20--25的随机值) 50

 我来答
解0人
2016-10-12 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:758万
展开全部
update tablename set fieldname=cast(floor(RAND()*5) as int)+20
where fieldname between 1 and 100
追问
输入之后就1--100的数据都改成了22,有在20--25范围,但是能不能不要全都一样,比如:21.1,22.1,这样子的随机数。
追答

哦,那麼简单sql语句无法实现了,

参考下面的存储过程,自行修改对应表名、字段名:

create procedure proc_test
as
begin
declare @keyName as int    --要修改主键字段类型
declare keyName cursor for select keyName from tablename    --要修改表名、主键名
open keyName 
fetch keyName into @keyName 
while @@FETCH_STATUS=0
begin
update tablename set xxx=CAST(rand()*5+20 AS decimal(10,1))
where keyName = @keyName    --要修改表名、更新的字段名xxx、主键名
fetch next from keyName into @keyName 
end
close keyName 
deallocate keyName 
end

-----或者-----

你可以这样:

  1. 查询,复制表主键字段所有数据到excel

  2. 在excel的主键字段右边添加随机数(rand函数)

  3. 此时的excel有主键和随机数两列,导入数据库newtable

  4. 通过导入的newtable来更新原表:

    update tablename set tablename.fieldname=newtable.随机数 
    from tablename,newtable
    where tablename.keyname=newtable.keyname
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式