我有一个关于大学课程的Table1,员工可以运行它们,它看起来像这样:
它建立在少数连接上,并由StudySemester,SchoolSubjectId,EmployeeId分组。 StudySemester实际上是一个id,它指的是信息学的第一年。我想拿出一些数据,想得到这样的东西:
只有少数可用的员工被分配到特定课程,我希望它是随机完成的。即雇员13,15,17可以教ePhs,StudySemester = 1000,但是应该选择一个 - 例如员工15,但也可能是13或17,无所谓。我不知道这些确切的值,这就是我不能写的原因...... WHERE EmployeeId = 15.有什么办法吗?
对不起,如果我的帖子不够清楚,我第一次写这里。提前致谢!
你可以使用row_number()
函数与newid()
:
select t.*
from (select t.*, row_number() over (partition by CourseSchoolSubjectId, StudySemester order by newid()) as seq
from table t
)
where seq = 1;