DBMS/오라클기타
다중update
choi121xx
2015. 6. 8. 22:48
2개 이상의 테이블을 조인하여 table1의 특정 컬럼을 table2 의 특정 컬럼의 값으로 업데이트는 아래와 같은 형식을 취한다.
[일반적인 업데이트의 경우]
UPDATE table
SET A = 'F'
WHERE B = 'T'
[다중행 업데이트의 경우]
아래 예제는 table2 의 id 별로 enddate 컬럼의 max 값을 찾아 비어져있는 table1 의 enddt 컬럼에 업데이트하는 경우이다.
[예제]
UPDATE /*+ bypassujvc */
(SELECT a.enddt end1, REPLACE(b.enddate, '-', '') end2
FROM table1 a, (
SELECT id, Max(enddate) enddate
FROM table2
GROUP BY id
) b
WHERE a.id = b.id
AND a.enddt is null
AND b.end_date > '2014-03-22'
)
SET end1 = end2
TistoryM에서 작성됨
[일반적인 업데이트의 경우]
UPDATE table
SET A = 'F'
WHERE B = 'T'
[다중행 업데이트의 경우]
UPDATE /*+ bypass_ujvc */
( 조인된 select 쿼리가 위치하는 곳 )
SET A = A'
아래 예제는 table2 의 id 별로 enddate 컬럼의 max 값을 찾아 비어져있는 table1 의 enddt 컬럼에 업데이트하는 경우이다.
[예제]
UPDATE /*+ bypassujvc */
(SELECT a.enddt end1, REPLACE(b.enddate, '-', '') end2
FROM table1 a, (
SELECT id, Max(enddate) enddate
FROM table2
GROUP BY id
) b
WHERE a.id = b.id
AND a.enddt is null
AND b.end_date > '2014-03-22'
)
SET end1 = end2
TistoryM에서 작성됨