我构建了一个SQL Query,它通过复杂的Condition来命令表。 这是一个具有相同原理的示例:(表Toto包括3个cols:id,num1,num2)
select t.id
from Toto as t
group by t.id
order by sum(case when t.id<100 Then t.num1 ELSE t.num2 END)
我的问题是,有选项可以在Lambda中编写此查询吗?(使用时\ else)
谢谢你!答案 0 :(得分:3)
它看起来像这样:
db.Toto
.GroupBy(t => t.id)
.OrderBy(g => g.Sum(t => t.id<100 ? t.num1 : t.num2)
.Select(g => g.Key) // since you're grouping by Id
它的清洁等同于:
db.Toto
.GroupBy(t => t.id)
.OrderBy(g => g.Sum(t => {
if (t.id<100)
return t.num1;
else
return t.num2;
}
)
.Select(g => g.Key) // since you're grouping by Id