問題情境之一的模擬:
SELECT A.SNAME, B.SCORE, (SELECT C.TEL FROM TAB_C C WHERE C.NO = A.NO) TEL FROM TAB_A A, TAB_B B WHERE A.ID = B.ID
執行腳本,報錯:ORA-01427 單行子查詢返回多個行
原因:查詢時,要確保每個子查詢只能返回一條數據,
注意:
1.針對這種情況,當表A,C關聯時,盡可能將所有的關聯條件都寫上;
2.當報錯的子查詢有重復數據時,嘗試用distinct、max()、分析函數(over()等)等去重
ORA-01427: 單行子查詢返回多個行-十字螺絲釘-ChinaUnix博客 http://blog.chinaunix.net/uid-23284114-id-3466252.html