我有一个包含2列样本数据的表。Column1是主键,并与其他几个表绑定在一起。第二列是一个随机范围从1到5的整数。我正在寻找一种方法来更改第二列中的数据,使其范围从1到8。我不是SQL专家,我想知道最简单的方法是什么。大约有3400条记录,所以我想我可以手动输入并随机输入数字,但我相信有更好的方法。
有什么建议吗?
谢谢。
发布于 2011-03-17 09:13:12
您可以使用RAND()函数。好吧,如果它像别人想象的那样工作,你可以使用它。
这将无法在Sql-中运行:
UPDATE tableT
SET column2 = CAST(1 + (RAND() * 8) AS INT)
;但这确实是:
UPDATE tableT
SET column2 = 1 + 8 * RAND( CHECKSUM( NEWID() ) )
;发布于 2011-03-17 10:18:23
每个查询只对rand()求值一次。所以你所有的column2值都是一样的。
对于SQL Server 2008,您可以使用
UPDATE tableT
SET column2 = 1+ (CRYPT_GEN_RANDOM(1) % 8)对于较早版本
UPDATE tableT
SET column2 = 1+ (abs(checksum(NewId())) % 8)发布于 2011-03-17 09:18:06
我认为你的答案实际上会返回9,对吧?
我会试试这个
UPDATE tableT SET column2 = CAST(1 + (RAND() * 7) AS INT);
https://stackoverflow.com/questions/5333715
复制相似问题