1 原始随机数函数
SELECT Rand()
可以看出输出的是小数,每次运行输出的不一样
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
结果如下:
可以看出方法二生成的每列的值是不一样的
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之间