我对此查询有疑问:
UPDATE ZOO.ANIMAL
SET ANIMAL.PRICE = ANIMAL.PRICE
* ( select ANI_009.c1
from ZOO.ANI_009
where ANIMAL.TYPE = ANI_009.TY)
WHERE ANIMAL.TYPE != 'familial'
当我运行此操作时出现此错误:
错误报告 - SQL错误:ORA-01427:子查询返回记录 不止一行00000 01427. - “单行子查询返回更多 比一行“ *原因: *动作
感谢您的帮助!
答案 0 :(得分:1)
错误描述了确切的问题。您的子查询返回多行。所以你试图将price
乘以一组行而不是另一个数字。
问题是:
select ANI_009.c1
from ZOO.ANI_009
where ANIMAL.TYPE = ANI_009.TY
返回多行而不只是一行。
答案 1 :(得分:0)
基本上在子查询中,当您比较您的值时,请确保您的查询。
错误就在乎,您的查询是
从薪水=的员工中选择薪水(从员工中选择薪水,其状态为'%ne');
这里喜欢运营商提取记录列表,即 新泽西州 新罕布什尔 内华达
等于运算符只能从子查询中取一行。为了解决上述错误,请在子查询中仅列出一条记录