-- 单个随机数
select RAND(5)
select RAND()
SELECT ABS(CHECKSUM(NEWID())) % 1000 + 1;
-- 查询结果中增加一个随机数列
select top 10
floor( RAND()*100 ) NoRand --所有行相同
,floor( RAND(spid*10000)*100 ) NoRand2 -- 行间值不同,但多次查询会得到相同的结果
,ABS(CHECKSUM(NEWID())) % 100 + 1 as RandNums --每次查询之间、行之间均随机
,*
from sys.sysprocesses
-- 每个loginame随机取条记录
;with t_login as
(
select distinct loginame from sys.sysprocesses
)
select l.loginame,R.spid
from t_login l
cross apply
(select top(3) spid,loginame
from sys.sysprocesses as s
where s.loginame=l.loginame
ORDER BY CHECKSUM(NEWID())
) as R
Order by l.loginame