所以我有一個表,其中的數據是這樣的:在SQL查詢來查找一列中重複再使用第二個列,以確定要返回的記錄
╔═══════════╦═════════════╦═════════╗
║ Column1 ║ Column2 ║ Column3 ║
╠═══════════╬═════════════╬═════════╣
║ 127001126 ║ 90489495251 ║ 1 ║
║ 127001126 ║ 90489495251 ║ 2 ║
║ 134024323 ║ 81999000004 ║ 1 ║
║ 346122930 ║ 346000016 ║ 2 ║
║ 346122930 ║ 346000016 ║ 1 ║
║ 346122930 ║ 346000016 ║ 3 ║
║ 346207637 ║ 346000016 ║ 1 ║
║ 346207637 ║ 346000016 ║ 3 ║
╚═══════════╩═════════════╩═════════╝
我需要的輸出:
╔═══════════╦═════════════╦═════════╗
║ Column1 ║ Column2 ║ Column3 ║
╠═══════════╬═════════════╬═════════╣
║ 127001140 ║ 90489495251 ║ 2 ║
║ 134024323 ║ 81999000004 ║ NULL ║
║ 346122930 ║ 346000016 ║ 2 ║
║ 346207637 ║ 346000016 ║ NULL ║
╚═══════════╩═════════════╩═════════╝
本質上檢查是否有多個記錄,其中列1 & 2檢查是否有記錄與column3 = 2如果有拉記錄回來。如果列1 & 2永遠不會有一個組合,其中欄3 = 2然後拉一個記錄回來欄3 = NULL
編輯: 代碼我想:
Select *
from (SELECT* From sometable
Where column3 = 2) D Full outer join
(SELECT* FROM sometable
Where coulmn3 = 1) E
on D.Column1 = E.Column1
and D.Column2 = E.Column2
(SELECT * from
FROM sometable
Where coulmn3 = 3) F Full outer join
on E.Column1 = F.Column1
and E.Column2 = F.Column2
我知道上面是不會改變的欄3值爲空。但我雖然= T那就讓我爲每個列1和列2組合
您正在使用哪個數據庫管理系統? Postgres的?甲骨文? –
我正在使用DB2。 – Mrblue1123
爲什麼不包括'127001126 | 90489495251 | null'? –