将列合并为一列

时间:2016-05-11 17:46:25

标签: mysql sql

我有一个产生如下数据的视图:

Event       Date        US_City     CA_City     ME_City     Br_City
Baseball    6/3/2016    LA          
Darts       5-Jun                   Ont     
Cricket     5-Jun                               Mexico City 
Football    6-Jun                                           Rio De Janero

我最终想要的是这样的,城市在一列中,而不是分布在多个列中:

Event       Date        City    
Baseball    6/3/2016    LA          
Darts       5-Jun       Ont     
Cricket     5-Jun       Mexico City 
Football    6-Jun       Rio De Janero

我无法在SQL中找到一种方法(更具体地说,MySQL)。我可以在这里使用聚合函数或类似函数吗?

1 个答案:

答案 0 :(得分:2)

使用:

Select Event, Date, coalesce(US_City,CA_City,ME_City,Br_City) city
from yourtable

Coalesce函数返回城市列表中的第一个非NULL值,并将其分配给City