2011-02-10 30 views
2

ちょっと、私は複数の列を持つ2つのテーブルがあり、私は1つの列を持つビューでそれらをマージしたい。SQL Server:1列に複数の列をマージする

TABLE1

data1 data2  data 3 
lala  blabla aaa 

表2

data1 data2  data 3 
qqq  wwww  eee 

1つのカラム

を有する1つのビューにビュー

をマージ私は、SQL Serverを使用してい
data1 
lala 
blabla 
aaa 
qqqq 
wwww 
eee 

あなたは、コード、XMLまたはデータサンプルを、投稿した場合、誰もがアイデア:)

+0

を持っている** **テキストエディタでこれらの行をハイライトしてくださいし、エディタツールバーの "コードサンプル"ボタン({})をクリックすると、フォーマットや構文を強調表示することができます。 –

+1

@marc_s Oki thx :)まあ私はちょうどhtmlでそれを書いたので、ボタンをクリックするとコードが表示されます:) –

+0

ええ、Stackoverflowのサイトでは、「マークダウン」と呼ばれる、 (マークアップの代わりに:-)) - 最初は少し珍しいですが、あなたがそれを掛けるとき、それは非常に強力で非常に使いやすいです。 –

答えて

1
select data1 from table1 
union all 
select data2 from table1 
union all 
... 
select data3 from table2 
+1

うん。重複していることを確認したい場合(例:table1.data1に「foo」があり、table1.data2に「foo」がある場合)、それらを統合するのではなく、UNIONの代わりにUNION ALLを使用してください。 –

+0

@Matt Gibson - そうですね、それを試してみたので、私の答えを編集して組合全体にしました。ありがとう。 –

+0

これは各テーブルを3回通​​過するのに対し、 'unpivot'はそれぞれ1回だけ必要です。 –

2
WITH cte(data1, data2, data3) As 
(
SELECT data1, data2, data3 FROM table1 
UNION ALL 
SELECT data1, data2, data3 FROM table2 
) 
SELECT data 
FROM cte 
UNPIVOT (data FOR d IN 
     (data1, data2, data3) 
)AS unpvt 
関連する問題