다음 MERGE 문을 실행한 뒤 요금표의 행 수와, MERGE 가 갱신… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 9회
다음 MERGE 문을 실행한 뒤 요금표의 행 수와, MERGE 가 갱신·삽입으로 처리한 행 수를 순서대로 나열한 것은? (단위: 행)[요금표]
| 상영관 | 요금 |
|---|---|
| 1관 | 12000 |
| 2관 | 13000 |
| 3관 | 15000 |
[신규요금]
| 상영관 | 요금 |
|---|---|
| 2관 | 14000 |
| 3관 | 15000 |
| 4관 | 18000 |
MERGE INTO 요금표 T USING 신규요금 S ON (T.상영관 = S.상영관) WHEN MATCHED THEN UPDATE SET T.요금 = S.요금 WHEN NOT MATCHED THEN INSERT (상영관, 요금) VALUES (S.상영관, S.요금);
1
3, 2
2
4, 2
3
4, 3
4
6, 3
해설
ON 조건에 맞는 2관·3관은 WHEN MATCHED 로 갱신되고 짝이 없는 4관은 WHEN NOT MATCHED 로 삽입되어 처리 행 수는 3, 요금표는 4행이 된다.
3관은 바뀌기 전후 요금이 같지만 조건에 맞았으므로 UPDATE 대상으로 처리되고, 원본에 없는 1관은 영향을 받지 않는다.
- 처리 2행은 값이 같은 3관을 갱신 대상에서 뺀 값이다.
- 요금표 3행은 4관이 삽입된다는 점을 놓친 값이다.
- 요금표 6행은 원본 행을 모두 새로 붙인다고 본 값이다.
오류나 개정된 내용이 보이면 알려주세요