将两个表合并为一个具有分隔值的表

时间:2017-12-28 16:07:11

标签: sql-server tsql

这是一个简单而简单的问题,但无论出于何种原因,我都无法找到解决方案。

如何加入这两个表,以便我得到像这样的NULL值?

表#T1

A
--
1
2

表#T2

B
--
3

期望的结果:

A  B
----
1 NULL
2 NULL
NULL 3

编辑:

我的解决方案就是这个

SELECT #T1.A, #T2.B 
FROM #t2 
RIGHT JOIN #T1 ON 1 = 0

UNION

SELECT #T1.A, #T2.B  
FROM #t2 
LEFT JOIN #t1 ON 1 = 0

但它看起来过于复杂。还有什么更好的吗?

2 个答案:

答案 0 :(得分:3)

使用FULL JOIN

select * 
   from #t1 t1
   full outer join #t2 t2 on t1.a = t2.b

或使用UNION ALL

select a,Null as b 
from #t1
union all 
select NULL, b 
from #t2

由于两个表中都没有公共记录,因此查询结果看起来都相同。当有共同记录时,结果会有所不同。使用符合您要求的那个

答案 1 :(得分:0)

这是更好/更简单的

SELECT #T1.A, #T2.B 
FROM #t2 
FULL OUTER JOIN #T1 ON 1 = 0