用于对列进行分组并忽略空值的SQL查询

时间:2013-01-09 16:10:24

标签: sql oracle10g

我有一张表:

Col1 Col2 Col3 Col4
1          a
1     b          
1                c
2     e   
2          f  
2                g

我需要编写一个具有类似

输出的查询
Col1 Col2 Col3 Col4
1     a     b   c
2     e     f   g

我正在使用oracle 10g

1 个答案:

答案 0 :(得分:9)

如果每列只有一个值,那么您可以使用聚合函数:

select 
  col1,
  max(col2) col2,
  max(col3) col3,
  max(col4) col4
from yourtable
group by col1

请参阅SQL Fiddle with Demo

结果是:

| COL1 | COL2 | COL3 | COL4 |
-----------------------------
|    1 |    b |    a |    c |
|    2 |    e |    f |    g |