문제
다음 UNPIVOT 구문에서 발생할 수 있는 오류의 원인으로 가장 적절한 것은?
[테이블 구조]
SQLCREATE TABLE 성적 ( 학번 VARCHAR(10), 국어 NUMBER(3), 수학 VARCHAR(10), 영어 NUMBER(3) );
SQLSELECT * FROM 성적
UNPIVOT (점수 FOR 과목 IN (국어, 수학, 영어));
① 테이블에 데이터가 없어서 ② 국어, 수학, 영어 열의 데이터 타입이 일치하지 않아서 ③ UNPIVOT 구문에서 AS 키워드를 사용하지 않아서 ④ 학번 열이 기본키가 아니어서
정답
2번
해설
② 국어, 수학, 영어 열의 데이터 타입이 일치하지 않아서: UNPIVOT 연산에서는 변환 대상이 되는 모든 열의 데이터 타입이 동일해야 합니다. 여기서 국어와 영어는 NUMBER(3)이지만 수학은 VARCHAR(10)으로 다른 타입이므로 오류가 발생합니다. ① 데이터 유무는 UNPIVOT 오류 원인이 아닙니다. ③ UNPIVOT에서 AS 키워드는 선택사항이며 오류 원인이 아닙니다. ④ 기본키 여부는 UNPIVOT 연산과 무관합니다.