2014-09-26 52 views
1

我有這個疑問反相列和行

SELECT 
    PA.PK, PA.PACKAGE_NAME, ATTR.ENGLISH_NAME ATTRIBUTES, 
    PA.VALUE, ATTR_LIST.ENGLISH_NAME ATTRIBUTES_LIST 
FROM 
    POSTS_ATTRIBUTES PA 
INNER JOIN 
    POSTS P ON PA.POSTS = P.PK 
LEFT OUTER JOIN 
    ATTRIBUTES ATTR ON PA.ATTRIBUTES = ATTR.PK 
LEFT OUTER JOIN 
    ATTRIBUTES_LIST ATTR_LIST ON PA.ATTRIBUTES_LIST = ATTR_LIST.PK 
WHERE 
    P.FIELDS = 83; 

其中給出這樣

PK | PACKAGE_NAME | ATTRIBUTES   | VALUE | ATTRIBUTES_LIST 
------------------------------------------------------------------ 
211| CERAMICS  | RAW MATERIALS   | (null) | CEMENT 
212| CERAMICS  | PRODUCTION OPERATIONS | (null) | PRESSING 
213| CERAMICS  | OPERATIONAL SERVICES | (null) | FORK LIFTS RENTAL 
214| CERAMICS  | FINISHED PRODUCTS  | (null) | FLOOR CERAMICS 

輸出有什麼辦法通過查詢反轉行和列,使其看起來像

PACKAGE_NAME | RAW MATERIALS | PRODUCTION OPERATIONS | OPERATIONAL SERVICES | FINISHED PRODUCTS 
--------------------------------------------------------------------------------------------------- 
CERAMICS  | CEMENT  |  PRESSING   | FORK LIFTS RENTAL | FLOOR CERAMICS 
+3

谷歌「旋轉」 - 這就是這個操作被稱爲。有很多關於如何在Oracle中完成的文章。文檔在這裏:http://www.oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1.php – Jasmine 2014-09-26 19:43:18

+0

讚賞:) @Jasmine – Yusuf 2014-09-26 19:53:02

回答

0

看看this如何轉動的例子。這似乎解釋得很好。