相关疑难解决方法(0)

避免在数据库中添加重复项的最佳方法

我有一个包含三列的SQL Server表:

表格1

col1 int
col2 int
col3 string
Run Code Online (Sandbox Code Playgroud)

我为所有三列定义了一个唯一约束 (col1, col2, col3)

现在,我有一个.csv文件,我想在此表中添加记录,*.csv文件可以有重复记录.

我在上面的场景中搜索了各种避免重复的选项.以下是适合我的三个选项.请看一下并提出一些关于每种方法的优点/缺点的想法,以便我可以选择最好的方法.

选项1 :

首先避免重复,即从csv文件向列表添加对象时.我用过HashSet<T>了这个并覆盖了类型T下面的方法:

public override int GetHashCode()
{
    return col1.GetHashCode() + col2.GetHashCode() + col3.GetHashCode();
}

public override bool Equals(object obj)
{
    var other = obj as T;
    if (other == null)
    {
        return false;
    }
    return col1 == other.col1
        && col2 == other.col2
        && col3 == other.col3;
}
Run Code Online (Sandbox Code Playgroud)

选项#2

List<T>代替HashSet<T>.

添加所有对象后删除重复项 List<T>

    List<T> distinctObjects = allObjects
        .GroupBy(x => new …
Run Code Online (Sandbox Code Playgroud)

c# sql-server hashset

2
推荐指数
1
解决办法
1684
查看次数

返回SQL表中多列不同的所有列

我在sql表中有5列,我需要所有5列作为输出但在三列上具有不同的操作

需要在三列上返回具有不同操作的所有列

如何实现这一目标?

Timestamp                   Name    State     Context
2013-06-24 11:51:03.2550000 tst1    Started     E1
2013-06-24 11:56:03.2550000 tst1    Completed   E1
2013-06-24 11:51:03.2550000 tst1    Started     E1
2013-06-24 11:56:03.2550000 tst1    Completed   E1
2013-06-24 11:45:03.2550000 tst1    Started     E1
2013-06-24 11:50:03.2550000 tst1    Completed   E1
2013-06-24 11:45:03.2550000 tst1    Started     E1
2013-06-24 11:50:03.2550000 tst1    Completed   E1
Run Code Online (Sandbox Code Playgroud)

在这里,我通过使用下面的查询在三列上应用distinct来获得上表的所有不同结果.但我需要这三个列的不同之处还需要选择上下文列而不在Context列上应用distict

SELECT DISTINCT时间戳,名称,状态FROM TableName group by Timestamp,Name,State

改述我的问题:

我需要从上表中选择唯一的列.这里只有unquie列选择被视为时间戳,名称,状态

Timestamp                   Name    State     Context
2013-06-24 11:51:03.2550000 tst1    Started     E1
2013-06-24 11:56:03.2550000 tst1    Completed   E1
2013-06-24 11:45:03.2550000 tst1    Started E1
2013-06-24 11:50:03.2550000 tst1    Completed   E1
Run Code Online (Sandbox Code Playgroud)

sql sql-server select distinct

-4
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql-server ×2

c# ×1

distinct ×1

hashset ×1

select ×1

sql ×1