比较两个SQL表,如果数据不匹配,在第三个表中放一个整数值
有没有办法比较3个SQL表(A、B、C)?A和B中的哪些列标记为Name,Timestamp在A中,而Name,ScheduledTime在B中。我需要比较这两列,如果它们不匹配,请在表C中名称旁边的列2中放一个数值1。我对SQL还不熟悉,但不确定这是否可能。(使用SSMS)
表A如下所示。
Name | Time
-----------------
John | 7:00AM
Joe | 7:07AM
Tim | 7:25AM
表B如下所示。
Name | Schedule
--------------------
John | 7:00AM
Joe | 7:00AM
Tim | 7:00AM
表C应该如下所示。
Name | Number
-----------------
John | 0
Joe | 1
Tim | 1
解决方案
对于您的示例数据,可以执行以下操作:
select a.name, (case when a.time = b.schedule then 0 else 1 end) as number
into c
from a join
b
on a.name = b.name;
不清楚这是否是一般解决方案,但它适用于提供的数据。
编辑:
SQL Fdle当前似乎没有运行MS SQL代码。但是here是一个SQL文件夹子,我相信它会证明上面的方法是有效的。相关文章