小编use*_*055的帖子

如何将具有重复值的行转换为列?

我试图转动我的表但保留额外的行(在我的示例中为eeeeee)在Oracle SQL中有没有办法做到这一点?

select * from (
select 
    mat_table.material, attribute_table.attribute, attribute_table.value
  from 
    mat_table mat_table
    inner join 
    attribute_table on mat_table.rel= attribute_table.rel
    where 




      material = 'Material_A' 
            )


material    |attribute|  value
_____________________________________

Material_A  |aaaaaa    | 
Material_A  |bbbbbb    |       hello
Material_A  |cccccc    |       val_1
Material_A  |dddddd    |       2
Material_A  |eeeeee    |       15
Material_A  |eeeeee    |       16
Material_A  |eeeeee    |       24 
Run Code Online (Sandbox Code Playgroud)

当我在where子句下使用pivot时

    pivot (
    max(attribute) as max_value for attribute IN ( 'aaaaaa', 
                                                   'bbbbbb', 
                                                   'cccccc', 
                                                   'dddddd', 
                                                   'eeeeee'
                                      ))
Run Code Online (Sandbox Code Playgroud)

我越来越接近我想要的东西但是对于eeeee我只得到一个值

material    |aaaaaa | bbbbbb | cccccc | dddddd …
Run Code Online (Sandbox Code Playgroud)

sql oracle pivot

5
推荐指数
1
解决办法
227
查看次数

标签 统计

oracle ×1

pivot ×1

sql ×1