SQL:COALESCE()函数的替代方法,该函数将所有值分组为一列

时间:2019-05-14 12:59:23

标签: mysql sql google-cloud-sql

我有一张这样的桌子

enter image description here

使用COALESCE()函数...

SELECT COALESCE(column1, column2, column3) combinedColumn from t;

我明白了...

enter image description here

但是,我想要这个。...

enter image description here

我找到了使用UNION ALL的解决方法,但这不是很好。是否有一个功能像COALESCE()一样,但包含所有值?谢谢

1 个答案:

答案 0 :(得分:2)

您不能在此处使用合并,因为可能有多个值要返回

UNION是最好的解决方案(因为空白,所以不是UNION ALL)

select column1 from mytable
UNION
select column2 from mytable
UNION
select column3 from mytable

也就是说,如果您要维护重复项(如果有),那就是UNION ALL,或者将所有列连接到一个字符串中,然后再将它们拆分出来(不惜一切代价避免UNION ALL)