2016-11-30 18 views
-1

MSSQLで共通の列を持たない2つの表をマージし、各表のすべての行を併合表の別々の行として保持したいとします。共通の列のない2つの表をマージする

シナリオ:ここ

Table A Col1 Col2 
    1  1.Col1 1.Col2 
    2  2.Col1 2.Col2 

Table B Col3 
    3  3.Col3 

は、私が期待したものである:

Table Col1 Col2 Col3 
    1 1.Col1 1.Col2 Null 
    2 2.Col1 2.Col2 Null 
    3 Null Null 3.Col3 
+0

簡単な答えは、各テーブルから選択するために、空の列を追加することであろうと、 2つの結果セットを結合します。 –

答えて

1

は単に避けるためにUnionを使用し、他の列のためのNULLを選択:

すべてのクエリは、UNIONを使用して結合、INTERSECTまたはEXCEPT演算子は、等しい数のexpresを持つ でなければなりませんそれらのターゲットリスト内のシオン。

デモ: -

Create table #Table1 (A int, Col1 varchar (10), Col2 varchar(10)) 
Create table #Table2 (b int, Col3 varchar (10)) 

insert into #Table1 values (1,'1.Col1',' 1.Col2') 
insert into #Table1 values (2,'2.Col1','2.Col2') 

insert into #Table2 values (3,'3.Col3') 

select A,Col1,Col2,null as Col3 from #Table1 
union 
select B,null,null,Col3 from #Table2 

go 
drop table #Table1 
go 
drop table #Table2 

結果: -

enter image description here

1
Select A,Col1,Col2,null as Col3 from tblA Union All Select B,null ,null ,Col3 from tblB 
関連する問題