【发布时间】:2019-01-23 16:43:18
【问题描述】:
我有一个包含两种类型 ID 列的 SQL 表。例如
ID_1 Name Date ID_2
487 Joe 09/06/2004 332
731 Mike 06/01/2004 116
487 Joe 09/06/2004 354
777 Rich 01/01/2002 455
745 Mike 06/01/2004 116
有时 ID_1 有多个行,ID_2 具有不同的值。反之亦然,有时 ID_2 有多个行,ID_1 的值不同。
我想保留 ID_1 和 ID_2 之间存在一对一匹配的所有行。理想情况下,我还会用剩余的行制作另一个表格,这样我以后可以轻松查看它们。所以上面的例子中,只有一行(第 4 行)ID_1 和 ID_2 是一对一匹配的:
ID_1 Name Date ID_2
777 Rich 01/01/2002 455
所有其他行都有其中一个 ID 重复的行。所以它基本上是删除任何一个 ID 列重复的行。
我曾尝试使用 DISTINCT,但这会保留其中一个重复的行,而我希望将它们全部删除。
附言这不是关于连接表的问题 - 示例是单个表。
【问题讨论】:
-
查找 SQL Server JOIN 语句
-
“一对一”匹配是什么意思?期望的结果会有所帮助。
-
您是否在寻找名称只出现一次的行?因为我在您的数据中看不到 id_1 和 id_2 之间的任何相关性。
-
我正在使用 sql-server - 我已经添加了这个标签。
标签: sql sql-server distinct