首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql server:随机更新表

问sql server:随机更新表
EN

Stack Overflow用户
提问于 2011-03-17 09:08:59
回答 3查看 941关注 0票数 2

我有一个包含2列样本数据的表。Column1是主键,并与其他几个表绑定在一起。第二列是一个随机范围从1到5的整数。我正在寻找一种方法来更改第二列中的数据,使其范围从1到8。我不是SQL专家,我想知道最简单的方法是什么。大约有3400条记录,所以我想我可以手动输入并随机输入数字,但我相信有更好的方法。

有什么建议吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-17 09:13:12

您可以使用RAND()函数。好吧,如果它像别人想象的那样工作,你可以使用它。

这将无法在Sql-中运行:

代码语言:javascript
复制
UPDATE tableT
  SET column2 = CAST(1 + (RAND() * 8) AS INT)
;

但这确实是:

代码语言:javascript
复制
UPDATE tableT
  SET column2 = 1 + 8 * RAND( CHECKSUM( NEWID() ) )
;
票数 5
EN

Stack Overflow用户

发布于 2011-03-17 10:18:23

每个查询只对rand()求值一次。所以你所有的column2值都是一样的。

对于SQL Server 2008,您可以使用

代码语言:javascript
复制
UPDATE tableT
  SET column2 = 1+ (CRYPT_GEN_RANDOM(1) % 8)

对于较早版本

代码语言:javascript
复制
UPDATE tableT
  SET column2 = 1+ (abs(checksum(NewId())) % 8)
票数 3
EN

Stack Overflow用户

发布于 2011-03-17 09:18:06

我认为你的答案实际上会返回9,对吧?

我会试试这个

UPDATE tableT SET column2 = CAST(1 + (RAND() * 7) AS INT);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5333715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档