【问题标题】:How to convert sql sum with case to linq如何将带大小写的sql sum转换为linq
【发布时间】:2015-10-02 15:16:36
【问题描述】:
SUM(CASE WHEN [dbo].[tblHits].IsLike = 1 THEN 1 ELSE 0 END) as Likes     

我想要这样的东西,下面的代码给了我错误


不能隐式转换 bool 类型?到十进制?

TotalLikes = grouped.Sum(d => d.IsLike == true ? d.IsLike = true : d.IsLike = false )

【问题讨论】:

  • TotalLikes = grouped.Sum(d => d.IsLike == true ? 1 : 0 )?
  • d.IsLike == true ? d.IsLike = true : d.IsLike = false 是空话。
  • 哦,这对我来说太棒了,是的,我承认我犯了一个严重的错误!

标签: linq sum case


【解决方案1】:

最直接的翻译是:

TotalLikes = grouped.Sum(d => d.IsLike == true ? 1 : 0)

可以简写为:

TotalLikes = grouped.Sum(d => d.IsLike ? 1 : 0)

但我会使用:

TotalLikes = grouped.Count(d=>d.IsLike);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2019-06-25
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多