select * from tbl_a;
SRNO T_TEXT
1 a
1 b
1 c
2 a
2 b
3 a
3 b
4 a
----
select * from tbl_b;
SRNO T_TEXT
1
1
1
2
2
3
3
4
我想使用tbl_b.t_text
中的值更新tbl_a.t_text
。
我这样做它给返回太多行。我可以通过for循环来做到这一点,
但只想通过更新声明。
这是我试过的SQL
update tbl_b b
set b.t_text = (select a.t_text from tbl_a a
where a.srno = b.srno and b.t_text is null)
where exists ( select 1 from tbl_a c
where c.srno = b.srno);
抛出错误single row subquery return more than one row
。
答案 0 :(得分:1)
您可以使用此代码更新tbl_b
begin
for i in (select a.* from tbl_a a) loop
update tbl_b b
set b.t_text=i.t_text
where b.srno=i.srno
and b.t_text is null
and rownum=1;
end loop;
end;
我希望它可以帮到你。
答案 1 :(得分:-1)
您可以使用以下查询
UPDATE tbl_a
SET tbl_a.T_TEXT=(SELECT tbl_b.T_TEXT
FROM tbl_b
WHERE tbl_b.SRNO=tbl_a.SRNO);