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

 

posted @ 2017-05-22 16:07  VNX  阅读(53855)  评论(2编辑  收藏  举报