提取具有很少条件的数据表
本文关键字:条件 数据表 提取 | 更新日期: 2023-09-27 18:36:59
我有一个数据表,如下所示:
ColumnA ColumnB ColumnC
1001 Null 10
1001 W1 5
1001 W2 4
1002 Null 45
1002 W3 15
1002 W4 23
1003 W5 25
1003 W6 10
1003 W7 11
我想从上面提取另一个DataTable
,有一个条件,如果ColumnB
中的第一个值是 Null wrt 到ColumnA
,然后提取它。
这意味着我需要检查列 B 中的空值并从列 A 中提取相应的非重复值。
输出应为
ColumnA
1001
1002
我写了一些东西:
DataTable dt2 = dt.DefaultView.ToTable(true, "ColumnA");
但它只给了我来自 A 列的不同值。它不能按照我的要求工作。
我想一些 LINQ 查询可以在这里工作,但我不知道 LINQ。
专家请帮忙。
问候
试试这个:-
var result = dt.AsEnumerable().Where(x => x.Field<string>("ColumnB") == null)
.Select(x => x.Field<int>("ColumnA"));
编辑:
要获取这些值的计数,这些值在ColumnB
中Null
ColumnA
:-
var result = dt.AsEnumerable().GroupBy(x => x.Field<int>("ColumnA"))
.Where(x => x.Any(z => z.Field<string>("ColumnB") == null))
.Select(x => new { ColumnValue = x.Key, Count = x.Count() });
你可以在没有 LINQ 的情况下做到这一点,只需使用DataView
var dv = dt.DefaultView;
dv.RowFilter = "ColumnB is null";
var dt2 = dv.ToTable(true, "ColumnA");