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函数可以返回第二个和第三个参数的时间差,以第一个参数所定义的结果类型为准,如当前是返回以毫秒为单位的时间差