Sql 如何比较两个表?
这是我的问题Sql 如何比较两个表?,sql,tsql,sql-server-2017,Sql,Tsql,Sql Server 2017,这是我的问题 我想知道两个表之间的区别有一个特定的函数吗 根据定义,EXCEPT通过比较两个查询的结果返回不同的行 Exception从左输入查询返回右输入查询未输出的不同行 基本规则是: 列的编号和顺序在所有列中必须相同 查询。 数据类型必须兼容。 去 小提琴 您可以看到,使用EXCEPT生成的重复项,如果要消除此问题,可能需要为两个表都添加一个ID列,并将查询更新为: Select * from MyTableA as a where not exists (Select 1 from My
我想知道两个表之间的区别有一个特定的函数吗 根据定义,EXCEPT通过比较两个查询的结果返回不同的行 Exception从左输入查询返回右输入查询未输出的不同行 基本规则是: 列的编号和顺序在所有列中必须相同 查询。 数据类型必须兼容。 去 小提琴 您可以看到,使用EXCEPT生成的重复项,如果要消除此问题,可能需要为两个表都添加一个ID列,并将查询更新为:
Select *
from MyTableA as a where not exists (Select 1 from MyTableB as b
where a.ColA = b.ColA and a.ColB = b.ColB and a.ID <> b.ID)
你也许在找我。样本数据和预期结果将帮助我们在这里帮助您。A*不在选择中*。。。没有任何意义;您需要在WHERE中比较标量值
CREATE TABLE MyTableA (ColA int, ColB int)
CREATE TABLE MyTableB (ColA int, ColB int)
INSERT INTO MyTableA (ColA, ColB) VALUES (15,1),(10,1),(2,1),(2,1),(16,1),(2,2),(3,3),(3,3)
INSERT INTO MyTableB (ColA, ColB) VALUES (1,1),(1,1),(1,1),(2,2),(4,5),(1,1),(4,5)
SELECT * FROM MyTableA
EXCEPT
SELECT * FROM MyTableB
Select *
from MyTableA as a where not exists (Select 1 from MyTableB as b
where a.ColA = b.ColA and a.ColB = b.ColB)
GO
ColA | ColB
---: | ---:
2 | 1
3 | 3
10 | 1
15 | 1
16 | 1
ColA | ColB
---: | ---:
15 | 1
10 | 1
2 | 1
2 | 1
16 | 1
3 | 3
3 | 3
Select *
from MyTableA as a where not exists (Select 1 from MyTableB as b
where a.ColA = b.ColA and a.ColB = b.ColB and a.ID <> b.ID)