将多个列值合并为单个行

时间:2013-03-23 01:20:25

标签: plsql

我将这种格式的数据放在一个表中:

Key Col1 Col2 Col3Type
第1部分abc1 cde1 X
第1部分fgh1 Y

我希望我的select查询的结果合并Part1的所有列值,如下所示:

Key Col1 Col2 Col3
Part1 abc1 cde1 fgh1

我尝试使用GROUP BY / HAVING并使用Type列的值进行自联接。 这些都没有用。

    select 
    a.Key ,a.Col1, a.Col2, b.Col3
    from table a 
    join table b on 
    a.Key = b.Key and 
    b.Type ='Y' and 
    a.Type= 'X'

基本上我注意到的约束是,如果我有/有组,我只得到所有三列值都存在的行。另外我不知道如何在插座sql中获取列值。选择一个。*将从第一行给我。我怎么得到b。?

1 个答案:

答案 0 :(得分:0)

select 
  Key,
  max(Col1) as Col1,
  max(Col2) as Col2,
  max(Col3) as Col3
from table
group by Key