2012-03-22 100 views
1

我很难搞清楚如何正确合并行。看着下面的示例表:为oracle 10g压缩sql行

TYPE | NAME | COLOR | DESCRIPTION 
================================= 
Fruit | Apple | Red | -----  
Fruit | Apple | ----- | sweet  
Fruit | Orange | ----- | ripe 

我想要做的就是合并行1和2,使具有相同类型和名称的行将具有单排和它的值合并为一行。

有没有办法做到这一点?

+0

有多大的数据集?不确定只有SQL,但是使用某种编程语言,只涉及散列表和大量的删除/更新。 (我假设你的意思是永久合并?) – Corbin 2012-03-22 02:44:02

+0

忘记说这个数据集是由查询返回的。只是无法弄清楚如何合并行。这些列也可以根据用户的输入进行扩展。 – RavenXV 2012-03-22 02:56:09

+0

它总是一个空的非空行或将内容需要合并? – Corbin 2012-03-22 03:14:29

回答

4

这听起来像你只是想

SELECT type, 
     name, 
     MAX(color) color, 
     MAX(description) description 
    FROM table_name 
GROUP BY type, name;