我有下面的SQL查询来找到第二个最高薪水。

选择*从员工E1那里
(2)=(从员工E2选择Count(Distinct(E2.Salary)),其中
E2.Salary> E1.Salary)

我想将其转换为Linq语句。

最佳答案

我认为您要问的是找到薪水第二高的员工吗?

如果是这样,那将是类似

var employee = Employees
    .OrderByDescending(e => e.Salary)
    .Skip(1)
    .First();

如果多个雇员的薪水相等,并且您希望返回工资第二高的所有雇员的IEnumerable,则可以执行以下操作:
var employees = Employees
    .GroupBy(e => e.Salary)
    .OrderByDescending(g => g.Key)
    .Skip(1)
    .First();

(对@ diceguyd30表示建议后一种增强表示感谢)

关于c# - 使用linq查找第二个最高薪水,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4449238/

10-13 05:53