上下文 更新查询,而where子句仍然为每行更新不同的值。 以下更新查询的工作原理如何?
create table te--table creation
(
col1 varchar2(100),
col2 varchar2(200))
create table te1
(
col1 varchar2(100),
col2 varchar2(200))
insert into te (COL1, COL2) values ('1', 'ABC');
insert into te (COL1, COL2) values ('2', 'XYZ');
insert into te (COL1, COL2) values ('3', 'LMN');
insert into te (COL1, COL2) values ('4', 'PQR');
insert into te (COL1, COL2) values ('5', 'TTT');
insert into te (COL1, COL2) values ('1', '');
insert into te (COL1, COL2) values ('2', '');
insert into te (COL1, COL2) values ('3', '');
insert into te (COL1, COL2) values ('4', '');
insert into te (COL1, COL2) values ('5', '');
update te q
set (q.col2) = (select tt.col2 from te1 tt where tt.col1 = q.col1);
答案 0 :(得分:0)
update te q
set (q.col2) = (select tt.col2 from te1 tt
where tt.col1 = q.col1
and tt.col2 is not null
and LENGTH(tt.col2)>0);
更新:您的选择对于相同的col1值(空且非空col2)具有不同的结果