T-SQL中产生随机数
2010年4月28日
| 标签: T-SQL
SQL开发中会有生成随机数的需求,下面说几种常用的需求和解决办法(基于MS SQL),最后总结出通用的办法:
1、0-9间的随机整数,包括0和9本身:
1 | abs(checksum(newid()))%10 |
扩展从a-b间的随机整数(a,b本身也是整数):
1 | a+abs(checksum(newid()))%(b-a+1) |
2、0-1间的随机实数:
1 | rand() |
–或是
1 | 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,精度根据需要来取

Thank you for interesting article