Sql server 将两个表合并为一个具有分隔值的表
这是一个很简单的问题,但无论出于什么原因,我都找不到解决办法 我如何连接这两个表,这样我就可以得到这样的空值 表#T1 表#T2 预期结果:Sql server 将两个表合并为一个具有分隔值的表,sql-server,tsql,Sql Server,Tsql,这是一个很简单的问题,但无论出于什么原因,我都找不到解决办法 我如何连接这两个表,这样我就可以得到这样的空值 表#T1 表#T2 预期结果: 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 但这似乎过于复杂。还有更好的
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
但这似乎过于复杂。还有更好的吗?使用
完全连接
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
由于两个表中都没有公共记录,因此两个查询结果看起来都是一样的。当有共同记录时,结果会有所不同。使用一个适合您需求的使用
完全连接
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
由于两个表中都没有公共记录,因此两个查询结果看起来都是一样的。当有共同记录时,结果会有所不同。使用适合您需求的工具这是更好/更简单的工具
SELECT #T1.A, #T2.B
FROM #t2
FULL OUTER JOIN #T1 ON 1 = 0
这个比较好/简单
SELECT #T1.A, #T2.B
FROM #t2
FULL OUTER JOIN #T1 ON 1 = 0
它如何更好、更简单?甚至查询中的语法也不正确。我们可以使用完全连接而不是联合。它如何更好、更简单?甚至查询中的语法也不正确。我们可以使用完全连接而不是联合。