SQL批量随机修改随机某字段在一定的范围

自助开通VIP,整站资源任意下载

批量随机处理某个表中的某些字段的的值的时候,如果只用floor(rand()N)不是很好用,会把某字段生成的数字一样,这样看起来太假了,联系到C++肯定是要一个随机种子的,这样才可以每个都随机,

select  (cast(100rand(checksum(newid())) as int))    0-99

select  (cast(2rand(checksum(newid())) as int)) +1   1-2

SQL批量随机修改随机某字段在一定的范围

select  (cast(Mrand(checksum(newid())) as int)) +N     N-(M+N-1)

以上的表达式貌似可以达到效果了,随机100以内的数字还算好用,但是随机较大的数字时就会发现又不好用了,比如随机一百万以内的数字,会发现老是随机的都是几十万,几万,偶尔有个几千的,个位数和十位数基本不会出现,这个随机也就也不随机了,看来随机还要靠自己啊,往下看吧,看懂的就看过程,看不懂就直接把随后一行拿去用

select  (cast(6rand(checksum(newid())) as int)+1)  --随机出1-6

select  (cast(power(10,2) as int)) -- 10的2次方 ==用上面随机的1-6替换2,达到效果是10的1-6次方,结果会是10,100,1000,10000,100000

SQL批量随机修改随机某字段在一定的范围

(cast(100rand(checksum(newid())) as int))  -- 100以内的随机数 ==   用上面随机的0,100,1000,10000,100000替换100 结果就很随机了

(cast((cast(power(10,(cast(6rand(checksum(newid())) as int)+1)) as int))rand(checksum(newid())) as int))  --综上得出此表达式,6位数的随机数,7位数的话就把6改为7

本站源码仅做学术研究,自娱自乐使用,不得用于赌博性质的非法商业用途!转载请说明出处!
棋牌资源网 » SQL批量随机修改随机某字段在一定的范围

这里有你所需要的,找专业的人做专业的事!

游戏演示 联系客服