Tsql 如果任何列对同一id具有不同的值,则返回行的另一种方法

Tsql 如果任何列对同一id具有不同的值,则返回行的另一种方法,tsql,Tsql,是否有其他方法可以通过连接两个表来返回相同id的行,如果相同id的任何列值不同,则返回该行 Select Table1.No,Table2.No,Table1.Name,Table2.Name,Table1.ID,Table2.ID,Table1.ID_N,Table2.ID_N From MyFirstTable Table1 JOIN MySecondTable Table2 ON Table1.No=Table2.No where Table1.ID!=Table2.ID or Tabl

是否有其他方法可以通过连接两个表来返回相同id的行,如果相同id的任何列值不同,则返回该行

Select Table1.No,Table2.No,Table1.Name,Table2.Name,Table1.ID,Table2.ID,Table1.ID_N,Table2.ID_N
From MyFirstTable Table1
JOIN MySecondTable Table2 
ON Table1.No=Table2.No where Table1.ID!=Table2.ID or Table1.ID_N != Table2.ID_N
在上面的例子中,我只需要检查两列,但在我的实际情况中,至少有20列

我是否可以使用其他语句来代替where codition中的每一列的枚举?

…where BINARY_校验和(表1.*)BINARY_校验和(表2.*)
...WHERE BINARY_CHECKSUM(Table1.*) <>  BINARY_CHECKSUM(Table2.*)

…其中二进制校验和(表1.Field1,表1.Field2,…)二进制校验和(表2..Field1,表2.Field2,…)
*这假定表中没有blob字段

如果否为主键

Select Table1.No,Table1.Name,Table1.ID,Table1.ID_N
From MyFirstTable Table1 
except 
Select Table1.No,Table1.Name,Table1.ID,Table1.ID_N
From MySecondTable Table1 

嗯,我只需要Where条件中的20/40列,而不是整个表。添加了不使用所有fieldsUmm的选项我需要编码,其中Table1.No=Table2.No,使用'except'比使用Join更好吗?您要求了另一种方法。这是另一种方式。
Select Table1.No,Table1.Name,Table1.ID,Table1.ID_N
From MyFirstTable Table1 
except 
Select Table1.No,Table1.Name,Table1.ID,Table1.ID_N
From MySecondTable Table1