ORA-01427:单行子查询返回多个行

ORA-01427:单行子查询返回多个行,第1张

由于查询结果有多行造成,确保查询结果只有一行数据。这样就不会报错了。

【错误例子】

“select a.id,a.case_id,e.case_name,e.case_code,(select enddate from ol_apply_process where id=a.id and result =10) as enddate from ol_apply a,ol_case e”,报错ORA-01427:单行子查询返回多个行。

解决方法:

查询中肯定有返回多行的情况,试着在子查询中加入rownum<2,也就是限制返回一行数据。

更改后的:

“select a.id,a.case_id,e.case_name,e.case_code,(select enddate from ol_apply_process where id=a.id and result =10 and rownum=1) as enddate from ol_apply a,ol_case e”。

很明显啊,说明你的sno不是主键,数据不是唯一的

如果是sql server这样写

select (select top 1 grade from sc where sc.sno=t.sno) as 数据库 from sc t

oracle这样写

select (select grade from sc where sc.sno=t.sno and rownum=1) as 数据库 from sc t


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9429652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存