SQLServer获取随机数据

1.比较常见和好用的一种

SELECT TOP 10 *, NEWID() AS random
FROM table
ORDER BY random

--newid函数会随机生成一个guid,很长的一个字符串,我们可以利用它进行随机取数

2.比较快速的一种()

--Declare @d Datetime
--Set @d=getdate()

SELECT Top 1* FROM users
WHERE 0.01 >= CAST(CHECKSUM(NEWID(), uid) & 0x7fffffff AS float) / CAST (0x7fffffff AS int)  -- 这里可以加上条件,如 and uid>10000000

--& 符号表示按二进制位进行与运算,0x7fffffff 表示一个十六进制的数,转化为十进制是2147483647
--Select [语句执行花费时间(毫秒)] = Datediff(ms,@d,Getdate())  

绿色注释部分可以查询执行时间,Datediff函数可以返回第二个和第三个参数的时间差,以第一个参数所定义的结果类型为准,如当前是返回以毫秒为单位的时间差

原文地址:https://www.cnblogs.com/programsky/p/4609608.html