当我有一个参数的 WHERE IN 时,我使用 Contains 但是当我有两个参数时它不起作用。我需要在 linq 中用 SQL 编写一个子查询:SELECT ename, sal, deptnoFROM empWHERE (sal, deptno) IN(SELECT MIN(sal), deptnoFROM empGROUP BY deptno);var min = (from emp in Emps group emp by new { Dzial = emp.Deptno} into grouped select new { grouped.Key.Dzial, wynik = grouped.Min(x => x.Sal) }); var result = (from emp in Emps where min.Contains(emp.Deptno, emp.Sal) select new { emp.Ename, emp.Sal, emp.Deptno });我试图将 Where 分成两个独立的部分,但这并没有改变任何东西。
1 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
您应该简单地使用GroupBy,然后使用SelectMany在Where中应用您的“IN”条件,如下所示:
var result = Emps.GroupBy(g => g.Deptno).SelectMany(a => a.Where(b => b.Sal == a.Min(c => c.Sal)));
我还在 DotNetFiddle 上准备了一个小例子: https ://dotnetfiddle.net/p8aYJv
- 1 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消