2011-02-16 84 views
0

我有以下LINQ表達式:轉換棘手的LINQ表達式SQL

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

我想將它轉換爲SQL(微軟SQL)。其中sourceIEnumerable<string>。問題在於如何按照每個組中的第一位數字和項目數量對記錄進行分組。

該數據庫有一個表Posts,它有列Bodyvarchar(max))。我對它的長度的第一位感興趣。

謝謝!

回答

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 
+0

需要FROM第一行。 – mellamokb 2011-02-16 15:44:17