sql合并两个公共字段不完整的表
在SQLServer2008中,我有以下两个表sql合并两个公共字段不完整的表,sql,sql-server,sql-server-2008,join,merge,Sql,Sql Server,Sql Server 2008,Join,Merge,在SQLServer2008中,我有以下两个表 Table_1: C1 C2 A TypeStringA-1 B TypeStringA-2 C TypeStringA-3 D TypeStringA-4 E TypeStringA-5 Table_2 C1 C2 A TypeStringB-1 B TypeStringB-2 D TypeStringB-3 E TypeStringB-4 我想展示以下数据: Result A TypeS
Table_1:
C1 C2
A TypeStringA-1
B TypeStringA-2
C TypeStringA-3
D TypeStringA-4
E TypeStringA-5
Table_2
C1 C2
A TypeStringB-1
B TypeStringB-2
D TypeStringB-3
E TypeStringB-4
我想展示以下数据:
Result
A TypeStringA-1 TypeStringB-1
B TypeStringA-2 TypeStringB-2
C TypeStringA-3 Null
D TypeStringA-4 TypeStringB-3
E TypeStringA-5 TypeStringB-4
现在我有两个子查询和一个where:
select
query1.C1
query1.C2
query2.C2
(select C1, C2
from Table_1) as query1
(select C2
from table_2) as query2
where query1.C1 = query2.C1
order by query1.C1
然而,从逻辑上讲,我的结果中没有需要显示的空数据,这就是我得到的:
Result
A TypeStringA-1 TypeStringB-1
B TypeStringA-2 TypeStringB-2
D TypeStringA-4 TypeStringB-3
E TypeStringA-5 TypeStringB-4
问题是,我应该使用什么来使用空数据拍摄表?Hi Andomar,我在合并时遇到一个错误,这是将nvarchar值“xx”转换为数据类型int时错误转换失败。然而,我删除了它的合并和它的工作。联合的目的是什么?。谢谢。Coalesce返回第一个非空参数。如果表_1中没有匹配行,则意味着从表_2中选择C1。
select coalesce(t1.C1, t2.C1)
, t1.C2
, t2.C2
from Table_1 t1
full outer join
Table2 t2
on t1.C1 = t2.C1