将3行合并为一行

时间:2018-08-24 09:31:47

标签: mysql sql

我得到了如下的输出

ID Name  Col1  Col2  Col3  
1  ABC    X     0     0
2  ABC    0     Y     0 
3  ABC    0     0     Z

我需要这个,然后

ID Name  Col1  Col2  Col3  
1  ABC    X     Y     Z

我尝试了按名称分组,但是不起作用

2 个答案:

答案 0 :(得分:0)

尝试通过分组进行分组

select name, max(col1),max(col2),max(col3)
from tablename
group by name

答案 1 :(得分:0)

如果0位于NULL处,那么这应该起作用:

select name, max(col1), max(col2), max(col3)
from tablename
group by name;

0令人困惑。这可能更接近您想要的:

select name, max(nullif(col1, '0')),
       max(nullif(col2,'0')), max(nullif(col3, '0'))
from tablename
group by name;