2013-01-09 111 views
2

我有一个表,如:SQL查询来一列,忽略空值

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输出10克

+1

如果在col2的多个条目在Col1中的值相同,会发生什么? – Mark

+0

我尝试了Col1组合,但无法使用它,因为我需要显示所有列 – Stu

+0

@Mark Col1中Col1中只有一个相同值的条目 – Stu

回答

7

如果你只有每列的值,那么你可能能够使用聚合函数:

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 | 
+0

工程不错..谢谢很多 – Stu

+0

@Prash欢迎您。如果您发现此答案有帮助或对您的问题有任何其他答案,请务必通过答案左侧的复选标记接受。它有助于网站的未来访问者知道已选择的答案,并且您可以接受代表。请参阅[如何接受答案的工作](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)了解更多详情。 :) – Taryn