单行子查询在Oracle中返回多于一行

时间:2019-05-28 11:18:30

标签: sql oracle subquery

我试图在Oracle中编写一个查询,该查询将返回多行,但是通过此查询,我得到了“单行子查询返回的行多于一行”的信息,我尝试使用IN运算代替“ =”运算符,但我无法做到,这是我的查询

 Update Quote_line_part_quantity 
 SET 
 resale_am =(
select target_resale 
FROM Quote_line_part_quantity 
where quote_id=100218906
)
WHERE 
 quote_id=100218906
 AND quote_line_no IN(
 SELECT 
 quote_line_no
 FROM 
 Quote_Line
 WHERE 
quote_id IN 100218906
AND quote_line_no=(1)
AND Quote_line_status_cd IN('R','A')
);

我很困惑为什么这一次又一次给出此错误。请帮助

1 个答案:

答案 0 :(得分:1)

最可能的问题在这里:

set resale_am = (select target_resale 
                 from Quote_line_part_quantity 
                 where quote_id = 100218906
                )

解决此问题的最佳方法尚不清楚,但是添加and rownum = 1将解决您的直接问题。