是否有人知道如何基於多列表中的單個列刪除和合並重復項以創建「垂直總結」。Oracle 11g - 合併單個列副本以創建垂直總結
IE)試圖從表A
Table A:
Person Language
Bob English
Sarah French
John Chinese
Bob French
Sarah English
Sarah Chinese
Table B (RESULT):
Person English French Chinese
Bob Y Y (null)
Sarah Y Y Y
John (null) (null) Y
如何我本來想這樣做是中建表B: 從數據創建表A,然後執行以下操作:
Create table summary as
Select person, (case when language = 'English' then 'Y') as English, (case when language = 'French' then 'Y') as French, (case when language = 'Chinese' then 'Y') as Chinese
From Table A;
最後做一個選擇不同的總結表。 然而,邏輯是錯誤的,尤其是因爲在所有列中不同,所以我只想要不同的人名。
我腦海中想到的另一種選擇是創建一個只填寫人名和空列英語,法語和中文名稱的表格。然後使用更新語句通過匹配到表A來填充它們。
有沒有人知道更好的方法/我如何實現這一點。我仍然處於學習Oracle的早期階段(特別是關於循環),任何幫助都將不勝感激。
謝謝!