使用一個Oracle 11g DB,我正在尋找一種方法來將我的查詢結果中的兩行從一個表合併到一行中,但也允許NULL值數據尚未輸入。來自同一個表的Oracle多重連接查詢顯示重複值
基本上我有這樣的:
TABLE1包含對象識別
TABLE2包含對象數據的兩行(A型& B)
我想我需要運行外JOIN,它只在獲取對象數據類型A時工作,但當我添加第二個JOIN時,我爲B的每一行獲得多個A的重複行。
因此,如果有4個A值和5個B值,我會的拭目以待5行A對B的每一行(共20行)
SELECT T1.NAME, T2a.VALUE as TYPE_A, T2b.VALUE as TYPE_B
FROM TABLE1 T1
LEFT OUTER JOIN TABLE2 T2a ON (T1.ID = T2a.ID AND T2a.TYPE='A')
LEFT OUTER JOIN TABLE2 T2b ON (T1.ID = T2b.ID AND T2b.TYPE='B')
我想要得到這個(見A如何有6項,B有5個):
NAME TYPE_A TYPE_B
ID1 VALUE1 VALUE2
ID1 VALUE1 VALUE2
ID1 VALUE1 (NULL)
ID1 VALUE1 VALUE2
ID1 (NULL) VALUE2
ID1 VALUE1 (NULL)
ID1 (NULL) VALUE2
ID1 VALUE1 (NULL)
任何幫助將不勝感激。
KS
你沒有在查詢任何其他加盟?你確定'ID'在它們各自的表中是唯一的嗎? – 2014-10-06 16:37:04
對我來說,你只是想旋轉類型的數據...... – xQbert 2014-10-06 16:51:14
ID1在這個例子中是相同的,TYPE_A和TYPE_B的數據是不同的。基本上我們有一種產品可以有兩種類型的測試。測試是在單獨的行(A和B)上,我需要將它們合併爲一行:product,testA,testB。如果有5個testA和6個testB,我似乎會得到30行(每個testB有一個testA行) – Casper 2014-10-07 15:33:20