Select 并比较来自不同 table 的两个日期时间列,但没有任何关系

Select and compare two Datetime columns from different table without having any relation

我有两个格式如下的表格

**Table1**

"date_Time1"    
"2018-09-13 04:27:00.000"  
"2018-09-13 04:28:00.000"

**Table2**   
"date_Time2"    
"2018-09-13 04:27:00.000"  
"2018-09-13 04:29:00.000"

现在我想比较这两个表,无论日期时间是否匹配。 结果应该像

+--------------------------+---------+
| Date_Time                | Is_match|   
+--------------------------+---------+
|"2018-09-13 04:27:00.000" |  True   |      
|"2018-09-13 04:28:00.000" |  False  |
|"2018-09-13 04:29:00.000" |  False  |              
+-----------------------------------+

试试这个:

SELECT ISNULL(t1.Date_Time,t2.Date_Time) AS Date_Time,
       CASE WHEN t1.Date_Time=t2.Date_Time THEN 'True' ELSE 'False' END AS Is_Match
FROM Table1 t1
OUTER JOIN Table2 t2 ON t1.Date_Time=t2.Date_Time

您可以尝试以下查询

select coalesce(t1.date_time1,t2.date_time2) as Date_Time ,
case when t1.date_time1 = t2.date_time2 then 'True'  else 'False'  end as Is_Match
from  table1 t1 full outer join table2 t2 on t1.date_time1=t2.date_time2

另一种可能的方法,它将找到两个 table 之间的重复日期以及每个 table 中可能重复的日期:

WITH cte (date_time) AS (
    SELECT date_time1
    FROM DateTimeTable1
    UNION ALL
    SELECT date_time2
    FROM DateTimeTable2
)
SELECT 
    date_time, 
    CASE 
        WHEN COUNT(*) > 1 THEN 'True'
        ELSE 'False'
    END AS is_match
FROM cte
GROUP BY date_time
ORDER BY date_time