Education/오라클

select 결과로 update

창신다이 2008. 9. 19. 17:11

* 다른 테이블에 있는 컬럼을 특정 컬럼의 값으로 채워 넣고 싶을때...
-> update 서브쿼리로 select 를 사용하고, exists 키워드를 사용한다.

*** 이때 주의 사항은 조인할 컬럼이 중복된 값을 가지면 안된다.
만약 이 쿼리를 사용할때 두개이상의 값이 리턴된다는 에러가 나오면,
select count(prod_cd) from t_deposit_bak; 결과와
select count(distinct prod_cd) from t_deposit_bak; 결과를 비교해 볼 것.

Q) t_deposit_bak테이블에 있는prod_join_url 컬럼의 값을 모두 t_deposit 테이블의 prod_join_url에 채우시오.

A)
update t_deposit
  set t_deposit.prod_join_url = (select b.prod_join_url
                                              from t_deposit_bak b
                                              where  b.prod_cd=t_deposit.prod_cd)
  where exists(select b.prod_cd
                         from t_deposit_bak b
                         where b.prod_cd=t_deposit.prod_cd
                        and b.prod_cd = '10000563');

and절은 추가 조건을 주어 update 하고 싶을때...