Rand():
此函数生成从0到1之间随机
float
值
newid():此函数生成 uniqueidentifier 类型的唯一值
Checksum:总和检验码,校验和。 在SQLServer中Checksum()需要传入1个参数,可以是任何类型,如下示例:
- SELECT CHECKSUM(1) --1
- SELECT CHECKSUM('A') --114
- SELECT CHECKSUM('AA') --34472462
- SELECT CHECKSUM(GETDATE()) --18516390
下面有一张临时表,只有id一个字段,我用checksum和rand两种方法分别给每个id附上一个随机数:
看出问题所在了吧!
使用newid出来的结果是“真随机”,而用rand出来的结果却是“伪随机”
下面延伸一个方法,供将来有需要获得随机数的时候使用!新建一个标量值函数,通过传入参数最大值、最小值、保留几位小数、以及newid()来获得随机数: