Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将两个表合并为一个具有分隔值的表_Sql Server_Tsql - Fatal编程技术网

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

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 但这似乎过于复杂。还有更好的

这是一个很简单的问题,但无论出于什么原因,我都找不到解决办法

我如何连接这两个表,这样我就可以得到这样的空值

表#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

但这似乎过于复杂。还有更好的吗?

使用
完全连接

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

它如何更好、更简单?甚至查询中的语法也不正确。我们可以使用完全连接而不是联合。它如何更好、更简单?甚至查询中的语法也不正确。我们可以使用完全连接而不是联合。