如何生成随机数以填充空行?

时间:2016-03-20 13:03:37

标签: sql sql-server database

我在我的一个数据库表上添加了两个新列。它们被称为考试和作业结果。

This is the table

此时两列都是空的。我希望它们填充随机检查结果但不超过100.如何为0到100的两列生成随机数?

感谢。

2 个答案:

答案 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)函数在这里没有按预期工作,因为每个查询只调用一次,因此你会重复一个随机数。

相关问题