我希望我的函数在范围内生成浮点数(例如:-123.000,874.000)(如:272和3357之间)并使用唯一的浮点数更新每个记录的“pos_x”字段。 我写这个代码,但我看到我的表的字段都是相同的,也是整数,它们是正的。
这是我的代码:
UPDATE Driver_tbl
SET pos_x = (ROUND((RAND()* 10000),0))
答案 0 :(得分:13)
每次查询一次评估RAND
您可以使用CHECKSUM(NEWID())
将其播种,因此每行
UPDATE Driver_tbl
SET pos_x = ROUND(RAND(CHECKSUM(NEWID())) * (3357-272),0) + 272
但是,如果您使用ROUND(..,0)
,您也可以删除中间人UPDATE Driver_tbl
SET pos_x = ABS(CHECKSUM(NEWID())) % 9999