SQL Server随机数函数
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之间
浙公网安备 33010602011771号