ORA-01427 单行子查询返回多个行
问题情境之一的模拟:
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