1 原始随机数函数

SELECT Rand()

sql server随机函数 sql中随机函数_SQL

 

可以看出输出的是小数,每次运行输出的不一样

2 输出整数函数

如果要想输出整数,比如输出100以内的随机的函数,有下面两种方法:

/*输出100以内的随机整数:方法一*/
select cast(ceiling(rand()*100) as int)
/*输出100以内的随机整数:方法二*/
select cast(ceiling(rand(checksum(newid()))*100) as int)

方法二适用于大批量生成随机数,比如对于下面的语句:

/*测试两种生成随机数的方法*/
select StuNO,
        cast(ceiling(rand()*100) as int) as 'Random1',
        cast(ceiling(rand(checksum(newid()))*100) as int) as 'Random2' from Student

结果如下:

sql server随机函数 sql中随机函数_SQL_02

可以看出方法二生成的每列的值是不一样的

3 输出从M到N直接的随机数

如果我们要想找到从M到N之间的随机数怎么办?可以使用下面的代码段

 

1 DECLARE @m int=10,
 2         @n int=25
 3 BEGIN
 4     DECLARE @Differ int,
 5             @RandomDiffer int
 6     set @Differ=@n-@m /*找到M,N之间的差值*/
 7     /*找到不大于@n-@m的数字*/
 8     set @RandomDiffer=cast(ceiling(rand()*@Differ) as int) 
 9     select @n-@RandomDiffer /*这个就是最后的随机数*/
10 END

 

上面的找出的随机数是在10至25之间