将棘手的linq表达式转换为SQL

时间:2011-02-16 15:36:54

标签: sql linq

我有以下linq表达式:

        var files = posts
            .Select(post => int.Parse(post.Length.ToString()[0].ToString()))
            .GroupBy(c => c)
            .ToDictionary(g => g.Key, g => g.Count());

我想将其翻译为SQL(Microsoft SQL)。 sourceIEnumerable<string>的位置。问题是如何按照第一个数字对记录进行分组,并计算每个组中的项目数量。

数据库有一个表Posts,其中包含列Bodyvarchar(max))。我对它的长度的第一位数感兴趣。

谢谢!

1 个答案:

答案 0 :(得分:1)

SELECT firstDigit as Key, COUNT(*) as theCount
FROM
(
  SELECT convert(int, LEFT(convert(varchar(30), f), 1)) as firstDigit
  FROM Source as f
) as sub
GROUP BY firstDigit