我在我的一个数据库表上添加了两个新列。它们被称为考试和作业结果。
此时两列都是空的。我希望它们填充随机检查结果但不超过100.如何为0到100的两列生成随机数?
感谢。
答案 0 :(得分:3)
您可以使用rand(),
校验和(), and
newid()来执行此操作:
update t
set exam = rand(checksum(newid())) * 101,
assignment = rand(checksum(newid())) * 101;
在SQL Server中,rand()
(基本上)为查询调用一次。为了解决这个问题,你可以给它一个新的种子。如果您想要可重现的结果,也可以使用每行中的其他列作为种子值。
答案 1 :(得分:0)
您可以使用以下表达式(例如作为列)从0..100(包括)生成随机数:
RAND()
没有种子的range(10000)
函数在这里没有按预期工作,因为每个查询只调用一次,因此你会重复一个随机数。