如何在Oracle中将列转换为行?

时间:2015-06-18 02:42:44

标签: oracle pivot

我有一个这种形式的表(这只是一个局部视图,该表包含100多列)。

 env_id    property_TYPE   property_name
  1         user            user1
  1         host            host1
  99        user            user2
  99        host            host2
  1         FS              fs1

对于单个env_id,我有不同类型的属性类型 我希望将这些细节转换为列并采用以下形状:

Env_id     user    host
 1          user1   host1
 99         user2   host2

我怎么能做到这一点?

2 个答案:

答案 0 :(得分:0)

你可以通过PIVOT完成,下面是一个例子

Select * from (
   select property_name, env_id
   from table t
)
pivot 
(
   count(property_TYPE)
   for property_TYPE in ('USER','HOST')
)
order by env_id
/

答案 1 :(得分:0)

解码功能的帮助下,我能够达到我的要求。

pivot 也是另一种解决方案。