Sql 如何连接同一表的不同列?

Sql 如何连接同一表的不同列?,sql,sql-server,Sql,Sql Server,假设我有一个表,有两列,国家和城市 国家 USA Canada UK NY London 城市 USA Canada UK NY London 我希望联接/合并两个列记录,并期望得到如下输出- USA Canada UK NY London 那么,合并同一个表的不同列记录的SQL查询是什么呢 SELECT Country FROM TABLE UNION SELECT City FROM Table 应该这样做。回应“我正在寻找任何快速方法。因为如果我需要合并10列,那么我必须编写1

假设我有一个表,有两列,国家和城市

国家

USA
Canada
UK
NY
London
城市

USA
Canada
UK
NY
London
我希望联接/合并两个列记录,并期望得到如下输出-

USA
Canada
UK
NY
London
那么,合并同一个表的不同列记录的SQL查询是什么呢

SELECT Country FROM TABLE
UNION
SELECT City FROM Table

应该这样做。

回应“我正在寻找任何快速方法。因为如果我需要合并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

我正在寻找任何快速的方法。因为如果我需要合并10列,那么我必须编写10个联合!还有其他方法吗?您可能应该以不同的方式构造数据?没有。除了更改数据库模型LOL。。这是一个SQL问答题。