私は2つの列、国と都市で1つのテーブルがあるとします。同じテーブルの異なる列を結合するにはどうすればいいですか?
国
USA
Canada
UK
市私はこのような出力/参加する両方の列レコードをマージし、期待したい
NY
London
-
USA
Canada
UK
NY
London
だから、何は同じテーブルの異なる列のレコードをマージするSQLクエリ?
私は2つの列、国と都市で1つのテーブルがあるとします。同じテーブルの異なる列を結合するにはどうすればいいですか?
国
USA
Canada
UK
市私はこのような出力/参加する両方の列レコードをマージし、期待したい
NY
London
-
USA
Canada
UK
NY
London
だから、何は同じテーブルの異なる列のレコードをマージするSQLクエリ?
SELECT Country FROM TABLE
UNION
SELECT City FROM Table
とする必要があります。コメントへの対応
「私はどんな簡単な方法を探しています私は10列をマージする必要がある場合ので、私は10組合を記述する必要があり、他の方法があります。!?」:
あなたはアンピボットを使用することができますつまり、列名をリストに追加するだけです。しかし、データ型を監視することしかできません。例:
--CTE for example only
;WITH CTE_Locations as (
select Country = convert(varchar(50),'USA'), City = convert(varchar(50),'NY')
union select Country = 'Canada', City = 'Vancouver'
union select Country = 'UK', City = 'Manchester'
)
--Select a list of values from all columns
select distinct
Place
from
CTE_Locations l
unpivot (Place for PlaceType in ([Country],[City])) u
私はすばやく探しています。なぜなら、私が10列をマージする必要があるなら、私は10組合を書く必要があるからです!他の方法はありますか? –
おそらくデータを別の方法で構造化するべきでしょうか? –
いいえデータベースモデルを変更する以外は – rabudde