将两列合并为一列而无需合并

时间:2019-05-08 09:36:55

标签: sql-server

我有一个雇员表,其中有两列city1,city2。

我想选择不使用联合将city1,city2合并为单列。

还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

将两个字符串连接在一起。您可以使用CONCAT()来实现。在此示例中,我们在两者之间添加了一个空格,可以根据您的需要进行更改。

SELECT CONCAT(city1, ' ', city2) as city 
FROM myTable

或者,尽管我建议使用+(如果它们中的任何一个为空),也可以使用CONCAT()将字符串连接在一起。

SELECT city1 + ' ' + city2 as city
FROM myTable

答案 1 :(得分:1)

如果我们假设OP确实意味着希望以与UNION相同的方式获得结果(我对此表示怀疑),则可以使用VALUES表达式:

SELECT V.City
FROM YourTable YT
     CROSS APPLY (VALUES(YT.City1),(YT.City2)) V(City);
--WHERE V.City IS NOT NULL; --?