假设我有一个包含两列的表,Country和City。
国家
USA
Canada
UK
城市
NY
London
我想加入/合并两个列记录,并希望输出像这样 -
USA
Canada
UK
NY
London
那么,合并同一个表的不同列记录的SQL查询是什么?
答案 0 :(得分:5)
SELECT Country FROM TABLE
UNION
SELECT City FROM Table
应该这样做。
答案 1 :(得分:3)
回应评论“我正在寻找任何快捷方式。因为如果我需要合并10列,那么我必须写10个联盟!还有其他方法吗?”:
您可以使用unpivot,这意味着您只需要将列名添加到列表中。但是,唯一要注意的是数据类型。例如:
--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