小编Jam*_*mes的帖子

表和数据集之间的合并/交集 - 如何实现?

考虑下表:

Id          Hash
----------- ----------------------------------
1           0x31F777F0804D301936411E3ECD760859
2           0xD64A593F3E9ACC972158D522A4289EA0

(Id is an identity column)
Run Code Online (Sandbox Code Playgroud)

在该表中,我想合并以下数据集:

Hash
----------------------------------
0x31F777F0804D301936411E3ECD760859
0x31F777F0804D301936411E3ECD760859
0x0C5A65264F92A543E7AAA06375349C06

(Id is NOT present in the dataset)
Run Code Online (Sandbox Code Playgroud)

合并规则如下:

  • 如果表中不存在哈希,则将其插入表中;
  • 如果该hash在数据集中不存在,则从表中删除;
  • 如果哈希确实存在于双方,并且表中有X个实例,源中有Y个实例,则应将(YX)个实例插入到表中。

合并的结果应该使表格看起来像这样:

Id          Hash
----------- ----------------------------------
1           0x31F777F0804D301936411E3ECD760859
3           0x31F777F0804D301936411E3ECD760859
4           0x0C5A65264F92A543E7AAA06375349C06
Run Code Online (Sandbox Code Playgroud)

编写查询以实现此操作的最有效方法是什么?仅供参考,为简洁起见,省略了其他列。

sql-server insert merge

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

标签 统计

insert ×1

merge ×1

sql-server ×1