Cas*_*jne 2 t-sql sql-server-express
出于测试目的,我想通过将colums中的位设置为随机值来更新表.
update [Planned]
set [IsPlannable] = 1 * rand(cast(cast(newid() as binary(8)) as int))
WHERE [ComputerID] > 100
Run Code Online (Sandbox Code Playgroud)
它似乎确实应该工作,但不是我想要的方式.我想问题是结果大部分时间都会高于1.
如何将随机位翻转为随机值?
将1 *仍然产生一个分数及考虑到cast(0.1 as bit)会一代产量1,这将cast(0.9 as bit)更新都设置为1.
你可以;
update Planned set IsPlannable = case when rand(cast(newid() as binary(8))) < 0.5 then 0 else 1 end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |