如何获取具有最新空值的行?

时间:2013-12-03 22:27:22

标签: linq c#-4.0

对于以下内容:

col1 col2
1     null
3     null
5     100
6     200
10    null
11    201

如何使用LINQ获取最新的col2 == null行?这只是col1 =(1,3)。这些值来自数据库。

结果集将是:

col1 col2
1     null
3     null

1 个答案:

答案 0 :(得分:1)

我对Linq-To-Sql不太熟悉,所以我不确定它是否受支持,但请尝试:

var query = db.TableName
    .Where(r1 => r1.Col2 == null 
            &&  r1.Col1 < db.TableName
                  .Where(r2 => r2.Col1 != null)
                  .Select(r2 => r2.Col1)
                  .OrderBy(col1 => col1)
                  .FirstOrDefault());

至少应该是这个(工作)sql-query的LINQ等价物:http://sqlfiddle.com/#!6/439be/6/0