本帖最后由 nouvelliu 于 2012-4-13 10:08 编辑
2张表,a表,b表,a表的某些字段数据是从b表的一些字段导入过来的,若b表某个字段更新,要用update对a表的数据进行更新。
create table a (
SP_CODE VARCHAR2(20),
OPERATOR_CODE VARCHAR2(20),
SERV_TYPE VARCHAR2(20),
COUNT NUMBER(6));
create table b(
SP_CODE VARCHAR2(20),
OPERATOR_CODE VARCHAR2(20),
SERV_TYPE VARCHAR2(20));
insert into b values(900553,02011904,104);
insert into b values(900553,02012078,104);
insert into b values(900553,03201669,104);
insert into b values(900553,31053431,104);
insert into a (SP_CODE ,OPERATOR_CODE,SERV_TYPE ,COUNT )
select b.SP_CODE ,b.OPERATOR_CODE,b.SERV_TYPE,null
fromb;
现在是,sp_code 和operator_code 保持不变的,b表的serv_type会更新。
例如:900553,31053431,103 中的104更新为103了但是在a表里还是104
通过sp_code 和operator_code在a表里,把对应的serv_type更新,这样的update语句怎么写?
UPDATE a SET a.SERV_TYPE =
(SELECTb.SERV_TYPE FROM b,a WHERE b.SP_CODE = a.SP_CODE AND b.OPERATOR_CODE = a.OPERATOR_CODE)
WHERE a.SP_CODE IN (SELECT b.SP_CODE FROM b,a WHERE b.SP_CODE = a.SP_CODE);
出现 ORA-01427: single-row subquery returns more than one row ,我知道是子句中返回多条数据的问题,但是不知道怎么解决。
|