INPUT_TBL | JUSO_TBL | ||
아이디 | JUSO_ID | JUSO_ID | |
시 | CITY | ---> | CITY |
구 | GU | ---> | GU |
동 | DONG | ---> | DONG |
번지 | BUNJI | ---> | BUNJI |
전체 | ALL |
질문) 위와 같이 테이블 두개가 있습니다.
주소테이블과 인풋테이블의 아이디가 같으면(주소테이블에 juso_id가 없으면 종료)
인풋테이블의 각 컬럽데이타를 주소테이블의 각 컬럽으로 update후
주소테이블의 각 컬럽을 모두 주소테이블의 "ALL"에 update하기 입니다.
아래 두 코드는 제가 만들어 본것인데요. 하나의 쿼리로 가능할까요?
그리고 아래 첫 코드는 2,3 행에서 에러가 발생하네요.
1 UPDATE juso_tbl c
2 SET c.city = input_tbl.city c.gu = input_tbl.gu c.dong = input_tbl.dong c.bunji = input_tbl.bunji
3 WHERE c.juso_id = input_tbl.juso_id
4 ;
1 UPDATE juso_tbl c
2 SET c.all = c.city || ' ' || c.gu || ' ' || c.dong || ' ' || c.bunji
3 WHERE juso_tbl.joso_id = input_tbl.juso_id
4 ;
1번째꺼는 merge 문 사용하시면 편하실 거 같은데;
MERGE INTO juso_tbl juso_tbl c
USING (SELECT * FROM input_tbl) input_tbl
ON (c.juso_id = input_tbl.juso_id)
WHEN MATCHED THEN
UPDATE
SET c.city = input_tbl.city, c.gu = input_tbl.gu, c.dong = input_tbl.dong, c.bunji = input_tbl.bunji, c.all = c.city || ' ' || c.gu || ' ' || c.dong || ' ' || c.bunji;
대충 이런식?
저도 지식이 짧아서;;
먼저, 두 고수님께 감사드립니다.
질문 내용을 다시 수정했는데 봐주시겠어요?
INPUT_TBL | JUSO_TBL | ||
아이디 | JUSO_ID | JUSO_ID | |
시 | CITY | ---> | CITY |
구 | GU | ---> | GU |
동 | DONG | ---> | DONG |
번지 | BUNJI | ---> | BUNJI |
기타 | GITA | ||
전체 | ALL |
질문) 위와 같이 테이블 두개가 있습니다.
주소테이블과 인풋테이블의 아이디가 같으면(주소테이블에 juso_id가 없는것은 UPDATE없음)
인풋테이블의 각 컬럼데이타를 주소테이블의 각 컬럼으로 update후
주소테이블의 CITY, GU, DONG, BUNJI, GITA 컬럼데이타를 주소테이블의 "ALL"에 update하기 입니다.
아래 두 코드는 제가 만들어 본것인데요. 하나의 쿼리로 가능할까요?
1 UPDATE juso_tbl c
2 SET c.city = input_tbl.city c.gu = input_tbl.gu c.dong = input_tbl.dong c.bunji = input_tbl.bunji
3 WHERE c.juso_id = input_tbl.juso_id
4 ;
1 UPDATE juso_tbl c
2 SET c.all = c.city || ' ' || c.gu || ' ' || c.dong || ' ' || c.bunji || ' ' || gita
3 WHERE juso_tbl.joso_id = input_tbl.juso_id
4 ;