•  对表中的数据随机排列显示

Select * From Student Order by newid()

  • 随机显示表中N条记录

Select TOP N * From Student Order by newid()    --这里的N代表随机显示的记录数

注:newid()返回的是uniqueidentifier类型的唯一值。newid()每次产生的值都不一样,那么根据这样的值进行排序,每次的结果也是不一样的

  • 获取随机值

在SQL Server有个随机函数rand() ,只不过它返回的值float型,如果你需要整数的话,需要处理一下:

1.使用函数floor()  N=100

A:select  floor(rand()*N)  ---生成的数是这样的:12.0
B:select cast( floor(rand()*N) as int)  ---生成的数是这样的:12

2.使用函数ceiling() N=100

A:select ceiling(rand() * N)  ---生成的数是这样的:12.0
B:select cast(ceiling(rand() * N) as int)  ---生成的数是这样的:12

注:CEILING()返回大于或等于所给数字表达式的最小整数。FLOOR ()返回小于或等于所给数字表达式的最大整数。

       例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回的数据类型与输入的表达式的数据类型相同。