다음은 Oracle에서 실행할 MERGE문과 실행 전 두 테이블이다. 실행이 완료된 후 RESULT_TBL의 최종 행 수는?
RESULT_TBL
| ID | VAL | STATUS |
|---|---|---|
| 10 | A | 60 |
| 20 | B | 45 |
| 30 | C | 20 |
| 40 | D | 10 |
| 50 | E | 55 |
INPUT_TBL
| ID | VAL | STATUS |
|---|---|---|
| 20 | U | -10 |
| 30 | V | 25 |
| 40 | W | 35 |
| 60 | X | 55 |
| 70 | Y | 5 |
SQL
MERGE INTO RESULT_TBL T
USING INPUT_TBL S ON (T.ID = S.ID)
WHEN MATCHED THEN
UPDATE SET T.VAL = S.VAL,
T.STATUS = T.STATUS + S.STATUS
DELETE WHERE (T.STATUS >= 40)
WHEN NOT MATCHED THEN
INSERT (ID, VAL, STATUS)
VALUES (S.ID, S.VAL, S.STATUS);- 13
- 25
- 36
- 47
꿈라CBT