sql将行转置为列

时间:2016-07-13 13:58:31

标签: sql oracle pivot

我有一个Oracle视图(从多个表连接),就像第一个屏幕截图一样。 address_type应始终为owner或property。我希望获得第二次屏幕截图的结果。如何使用SQL来做到这一点?对不起,我是SQL的初学者。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用内部联接:

select tab1.address_id, tab1.address as owner_address,
       tab1.city as owner_city, tab1.state as owner_state, 
       tab1.zip as owner_zip, tab2.address as property_address,
       tab2.city as property_city, tab2.state as property_state, 
       tab2.zip as property_zip  
from tab1
full outer join tab2
on tab1.address_id = tab2.address_id 
where tab1.address_type = 'owner'
      and tab2.address_type = 'property'

tab1 包含所有所有者信息, tab2 包含所有属性信息。您可以使用address_id加入它们。

抱歉,我无法测试它!