放棄與衝突的記錄行爲了更好地說明我的問題,我想出了一個示例場景如下所示:SQL:在一列
以下是客戶A和B的Open_Year銀行帳戶歷史記錄列表對於一些賬戶或者丟失或者與其他記錄衝突。
例如,帳戶A-3-UB表示具有兩個記錄列表中的一個帳戶,但是,它有兩個相互矛盾的Open_Year 1990 & 2012;帳戶A-1-BA有兩個記錄,其中一個記錄缺少Open_Year。
Customer Account_id Bank_id Open_Year Gender
A 1 BA 2000 F
A 1 BA . F
A 2 UB . F
A 3 UB 1990 F
A 3 UB 2012 F
A 4 UB 2013 F
A 4 UB 2013 .
A 5 UB . F
B 1 WF 2014 M
B 1 WF 2014 .
B 6 WF . .
我想什麼有是通過一個單一的選擇查詢,有可能出現缺失/衝突的Open_Year這些帳戶將被丟棄完成,也就是說,返回的結果將是:
Customer Account_id Bank_id Open_Year Gender
A 4 UB 2013 F
A 4 UB 2013 .
B 1 WF 2014 M
B 1 WF 2014 .
附加問題:
現在我們在最後添加了另一條記錄,並且我們還想在丟棄一行時創明鏡是相互矛盾或缺失至少一個值,同樣的要求作爲Open_Year:
Customer Account_id Bank_id Open_Year Gender
A 1 BA 2000 F
A 1 BA . F
A 2 UB . F
A 3 UB 1990 F
A 3 UB 2012 F
A 4 UB 2013 F
A 4 UB 2013 .
A 5 UB . F
B 1 WF 2014 M
B 1 WF 2014 .
B 6 WF . .
C 7 WB 2015 F
預期結果將是:
Customer Account_id Bank_id Open_Year Gender
C 7 WB 2015 F
返回的錯誤說:子查詢不能選擇多個列。 –
我在oracle 11g和10xe上測試了它(在10xe中需要一些帶鋸齒的修改),它的工作方式與預期一致。沒有關於子查詢的錯誤。 –
我只是再次測試它,它對於示例數據集非常有效!還有一個問題:是否可以在單個查詢中同時過濾兩列(假設:Open_Year,Gender)? –