2015-06-18 33 views
0

我有一個表格(這只是一個局部視圖,表格包含超過100列)。如何將列轉換爲Oracle中的行?

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 

我怎樣才能做到這一點?

回答

0

解碼功能的幫助下,我能達到我的要求。

pivot也是另一種解決方案。

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

這個代碼不工作 – pratik

+0

什麼是錯誤 – Moudiz

+0

房產類型沒有標識,如果我(從表t 選擇PROPERTY_NAME,env_id,房產類型 ) 支點 ( 計數增加以下修改後的代碼 SELECT *使用從(房產類型) 用於房產類型中( '用戶', 'HOST') ) 以便通過下用戶和主機列我收到數字env_id / 。 – pratik