我的查询是这样的:
select top 50 Empid from (Select top 50 Empid from Emp inner join campus on Emp.CampusId=campus.CampusId join
departments on Emp.department=departments.deptid
where campus.Cname='Mumbai' ) x order by NEWID();
但这里数字50不是常数,它是可变的(计算值)。所以,我希望将所有Empids放在一个数据表中然后我需要随机选择其中几个(在上面的示例中为50)..是否可以使用dataview?
答案 0 :(得分:0)
之前已经回答过。
Is using Random and OrderBy a good shuffle algorithm?
请参阅Jon Skeet实施的Fisher-Yates shuffle。
基本上,随机调整行号或ID,从群体N中选择少量n。
答案 1 :(得分:0)
在T-SQL中,您可以使用SELECT TOP (@variable)
代替SELECT TOP 50
,如下所示:
Declare @RecCount int
--//Set the variable @RecCount here
--//Use it to bring the top record as follows
Select top (@RecCount) Empid
From Emp inner join campus on Emp.CampusId=campus.CampusId
join departments on Emp.department=departments.deptid
Where campus.Cname='Mumbai'
Order by NEWID();