MS SQL如何在我不知道它们的具体值时取出几个唯一的行

问题描述 投票:0回答:1

我有一个关于大学课程的Table1,员工可以运行它们,它看起来像这样:

enter image description here

它建立在少数连接上,并由StudySemester,SchoolSubjectId,EmployeeId分组。 StudySemester实际上是一个id,它指的是信息学的第一年。我想拿出一些数据,想得到这样的东西:

enter image description here

只有少数可用的员工被分配到特定课程,我希望它是随机完成的。即雇员13,15,17可以教ePhs,StudySemester = 1000,但是应该选择一个 - 例如员工15,但也可能是13或17,无所谓。我不知道这些确切的值,这就是我不能写的原因...... WHERE EmployeeId = 15.有什么办法吗?

对不起,如果我的帖子不够清楚,我第一次写这里。提前致谢!

sql sql-server
1个回答
2
投票

你可以使用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;
© www.soinside.com 2019 - 2024. All rights reserved.