Sql server 2012 Sql Server 2012,发现基于非主键的两个表之间不匹配
我正在试图找出两个没有主键/唯一键的表之间的差异。在下面的示例中,我需要基于id和id1列连接Table1和Table2,以比较这两个表中的值字段。正如您在下面的示例中看到的,表1的值D与表2的最后一行不匹配Sql server 2012 Sql Server 2012,发现基于非主键的两个表之间不匹配,sql-server-2012,Sql Server 2012,我正在试图找出两个没有主键/唯一键的表之间的差异。在下面的示例中,我需要基于id和id1列连接Table1和Table2,以比较这两个表中的值字段。正如您在下面的示例中看到的,表1的值D与表2的最后一行不匹配 create table Table1 (id int, id1 int, value varchar(10)) create table Table2 (id int, id1 int, value varchar(10)) insert into Table1 values (1,2,
create table Table1 (id int, id1 int, value varchar(10))
create table Table2 (id int, id1 int, value varchar(10))
insert into Table1 values (1,2,'A'),(1,2,'A'),(1,2,'B'),(1,2,'C'),(1,2,'D')
insert into Table2 values (1,2,'A'),(1,2,'A'),(1,2,'B'),(1,2,'C'),(1,2,'C')
表1:
表2:
我希望输出显示两个表之间不同的条目,如下所示:
id id1 Table1.value Table2.value
-----------------------------------------------------
1 2 D C
-----------------------------------------------------
任何帮助都将不胜感激。我已经尝试了以下代码,但我不确定如果任何表都有重复的select*from select Binary\u Checksumid,id1 B,Value,Row\u Number按Binary\u Checksumid,id1 order by Value asc RID from Table1 L inner join select Binary\u Checksumid,id1 B,Value,行数按二进制校验SUMID、id1按值排序asc RID从表2 N中的L.B=N.B和L.RID=N.RID进行过度分配,其中L.value N.value格式和所需输出的澄清
id id1 value
----------------------------
1 2 A
----------------------------
1 2 A
----------------------------
1 2 B
----------------------------
1 2 C
----------------------------
1 2 C
----------------------------
id id1 Table1.value Table2.value
-----------------------------------------------------
1 2 D C
-----------------------------------------------------