如何在C#asp.net查询中删除表中的重复行

时间:2019-05-08 03:54:14

标签: c# asp.net duplicates

我有两行在一个表中具有相似的数据。我想删除来自一个表的两行之间的重复数据,如何使用C#ASP.NET查询将其删除?

我使用print(all_data) [[0],[ 0.3322441, -0.34410527, -0.1462533 , 0.35244817, -0.3557416, -0.3362794 ], [ 0.9750831, -0.24571404 , 0.12960567, 0.14683421 ,0.00650549, -0.21060513]] 删除重复的数据,但显示错误:

  

“由于无法比较,因此无法将图像数据类型选择为DISTINCT”

这是我的代码:

distinct()

这是预期的结果:

enter image description here

但是结果是这样的:

enter image description here

因此重复,我需要显示两行之间的数据,并将其合并为一个。

var query = (from user in context.Users
             join group in context.Groups on user.ID equals group.UserID
             orderby user.Name
             where group.GroupID == nameID && user.IsDeleted == false || 
                   userGroup.GroupID == fullID && user.IsDeleted == false
             where user.IsDeleted == false
             select user);

在SQL Server中,我成功删除了重复数据,如下所示:

where group.GroupID == nameID && userMaster.IsDeleted == false || userGroup.GroupID == fullID && user.IsDeleted == false

但是如何用C#代码将其删除?

2 个答案:

答案 0 :(得分:0)

您可以像这样使用SelectMany

var partitioned = query.GroupBy(x => x.ID, x.GroupID, x.NameID, x.Name)
                  .SelectMany(g =>
                    g.Select((j, i) => new { j.ID, j.GroupID, j.NameID, j.Name, row_num = i + 1 }))
                  .Where(r => r.row_num = 1);
  1. 按所有(或必需)列分组,
  2. 创建row_num列,
  3. 过滤所有row_nums!= 1

答案 1 :(得分:-1)

如果您有重复的行,则可以使用“跳过”将其删除,如下所示:

选择用户。跳过(1)

如果您有两个以上的重复记录,则也可以使用“ Take(1)”。

希望这会对您有所帮助。

祝您编程愉快!!!!