T-SQL中的随机数

Posted mythp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T-SQL中的随机数相关的知识,希望对你有一定的参考价值。

 

SQL开发中会有生成随机数的需求,下面说几种常用的需求和解决办法(基于MS SQL),最后总结出通用的办法:

1、0-9间的随机整数,包括0和9本身:

abs(checksum(newid()))%10

扩展从a-b间的随机整数(a,b本身也是整数):

a+abs(checksum(newid()))%(b-a+1)

2、0-1间的随机实数: rand()

--或是 rand(checksum(newid()))

--推荐使用后一种。

由此扩展从a-b间的随机实数: a+rand(checksum(newid()))*(b-a)

注意上面的取法使得取值范围(a,b],若是想要取得(a,b),可以采用下面的表达式

a+rand(checksum(newid()))*(b-a)*0.99999 -- 此处0.99999可以更换为0.999999999,精度根据需要来取

PS:其中的rand() checksum() newid() abs()等函数请自行查阅联机丛书或google

以上是关于T-SQL中的随机数的主要内容,如果未能解决你的问题,请参考以下文章

带有随机NEWID列T-SQL的临时表

使用 T-SQL 生成随机字符串

SQL学习之T-SQL编程之函数

使用子查询提取随机值每次都显示相同的值

=rand() 的 T-SQL 等价物

sql server 生成随机数 rand函数