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
我有两个格式如下的表格
**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