我真的在LINQ上挣扎。我已经用SQL编写了查询(实际上这是一个关键点),并试图在LINQ中编写等效的语句。任何前进的指针将不胜感激。参见下面的代码:
SELECT b.URL,
SUM(CASE WHEN (a.ExtFlag = 0) THEN 1 ELSE 0 END) AS IntLinks,
SUM(CASE WHEN (a.ResponseCode >= 400 AND a.ExtFlag = 0) THEN 1 ELSE 0 END) AS IntBroken,
SUM(CASE WHEN (a.ExtFlag = 1) THEN 1 ELSE 0 END) AS ExtLinks,
SUM(CASE WHEN (a.ResponseCode >= 400 AND a.ExtFlag = 1) THEN 1 ELSE 0 END) AS ExtBroken
FROM Link a
INNER JOIN Host b
ON a.HostID = b.ID
GROUP BY b.URL
ORDER BY b.URL
非常感谢。
我认为这应该可以满足您的要求-至少值得一试:
var query = from link in db.Links
join host in db.Hosts on link.HostID equals host.ID
group link by host.Url into links
select new
{
Url = links.Url,
IntLinks = links.Count(link => link.ExtFlag == 0),
IntBroken = links.Count(link => link.ExtFlag == 0 &&
link.ResponseCode >= 400),
ExtLinks = links.Count(link => link.ExtFlag == 1),
ExtBroken = links.Count(link => link.ExtFlag == 1 &&
link.ResponseCode >= 400),
};
问题内容: 更有效的方法是- 在sql中使用case语句处理,或在代码中使用if语句处理相同的数据。我问是因为我的同事有一个很大的查询,其中包含许多案例陈述。我建议她通过编写case语句来减轻数据库的压力。我发现它更有效…但是为什么呢? 问题答案: 这里没有一个更基本的问题:这些语句实际上在做什么? 一分钟忘了表演。如果仅用于转换查询的最终输出,并且实际上可以用或在ASP中替换相同的功能,则可能意
问题内容: MySQL中的Case表达式和Case语句有什么区别?什么时候可以使用它们?与另一种相比,使用它们有什么好处? Case Statement语法: 案例表达语法: 这些看起来几乎相同,但是对Case Statements的最初描述是: 那么,在存储程序中使用一个而不在普通查询中使用它的显着区别是吗?我在正在使用的查询中尝试了此操作,但失败了-sqlfiddle。如果是这种情况,为什么不
问题内容: 我有一个数据库表’ tbl_transaction ‘,其定义如下: 我想生成两列:和。 是否可以仅使用SQL查询有条件地填充列,以使输出显示在正确的列中,具体取决于它是费用项目还是收入项目? 例如: 我正在使用MySQL作为数据库。我正在尝试使用CASE语句来完成此任务。 干杯! 问题答案: 是的,像这样: 正如其他答案所指出的那样,MySQL还具有使用较少冗长语法的功能。我通常尝试
问题内容: 这个问题已经在这里有了答案 : 10年前关闭。 可能的重复: “ else if”是否比“ switch()case”更快? Java中if / else与switch语句的相对性能差异是什么? 我知道case语句可以用跳转表实现。这是否使它们比if语句更有效? 只是应该避免这种微观优化吗? 问题答案: 我认为主要是尽可能清楚地编写代码。 这样的微优化不应该成为重点。 例如,如果您有这
问题内容: 我很确定这里有个示例,因为我不知道确切的用语,所以我找不到它。所以,请客气。 这个问题应该是一个简单的问题: 我有一个Azure SQL数据库,该数据库的设计有些错误(例如,缺少外键等)。由于此时我无法重新设计数据库,因此必须通过查询手动处理关系。由于数据库也是我们软件的瓶颈,因此我必须尝试以尽可能少的数据库命中来完成查询。 我有实体A,B,C和D。实体A有多个实体B(与未注册的外键连
问题内容: 如该问题所述,我试图制定一个查询,该查询在列结果中包含一个case语句,然后我想将该列包含在查询的group by语句中。举一个具体的例子,这几乎是我查询的样子: 在来到这里之前,我检查了一些网站,包括该网站,以尝试解决我的问题。我尝试在链接的网页中显示“ like”之后添加另一个别名,但是没有运气。我继续收到的错误消息如下: 是否还有其他人遇到我所面临的问题,并且能够在声明的结果上使