Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于单列从datatable中获取重复行_Sql_Vb.net_Linq_Datatable - Fatal编程技术网

Sql 基于单列从datatable中获取重复行

Sql 基于单列从datatable中获取重复行,sql,vb.net,linq,datatable,Sql,Vb.net,Linq,Datatable,我正在尝试基于单列值从datatable获取行。我有FiledName、FieldType、TableName是列名 下面的查询工作正常,但我只得到FieldName。不是所有的列 如何从下面获取所有列 Dim duplicates = DataSourceTable.AsEnumerable().GroupBy(Function(i) i.Field(Of String)("FieldName")).Where(Function(g) g.Count() > 1).Select(Func

我正在尝试基于单列值从datatable获取行。我有
FiledName、FieldType、TableName
是列名

下面的查询工作正常,但我只得到
FieldName
。不是所有的列

如何从下面获取所有列

Dim duplicates = DataSourceTable.AsEnumerable().GroupBy(Function(i) i.Field(Of String)("FieldName")).Where(Function(g) g.Count() > 1).Select(Function(g) g.Key)
    DataSourceTable = New DataTable
    Dim row As DataRow
    For Each dup In duplicates
        row = DataSourceTable.NewRow
        'row(0) = dup// I want get all values columns with index
    Next

这里需要两个步骤:一个是获取重复的FieldName值,另一个是获取感兴趣的其余值。如果要使用临时表,最简单的解决方案是:

插入到MyTestable(FieldName)中,从MySourceTable中选择FieldName,其中something=按FieldName划分的任何组的计数(*)>1


按a.FieldName、a.TableName的顺序从MySourceTable a中选择a.FieldName、a.FieldType、a.TableName,并在(a.FieldName=b.FieldName)上加入mytestable b

如果需要整行而不是组的键,那么不要只选择键

简单地改变

Dim duplicates = DataSourceTable.AsEnumerable()
                                .GroupBy(Function(i) i.Field(Of String)("FieldName"))
                                .Where(Function(g) g.Count() > 1)
                                .Select(Function(g) g.Key)

Dim duplicates = DataSourceTable.AsEnumerable()
                                .GroupBy(Function(i) i.Field(Of String)("FieldName"))
                                .Where(Function(g) g.Count() > 1)