문제
다음 SQL의 실행 결과는? (Oracle)
SQLSELECT LPAD(RPAD('AB', 5, 'X'), 8, '0'), REPLACE(TRANSLATE('ABCD', 'AC', '12'), 'BD', 'YZ') FROM DUAL;
① 000ABXXX, 1Y2Z ② 000ABXXX, 1B2D ③ ABXXX000, 1Y2Z ④ 000ABXXX, 12YZ
정답
2번
해설
첫 번째 결과: RPAD('AB', 5, 'X')는 'ABXXX'가 되고, LPAD('ABXXX', 8, '0')는 '000ABXXX'가 됩니다. 두 번째 결과: TRANSLATE('ABCD', 'AC', '12')는 A→1, C→2로 치환하여 '1B2D'가 되고, REPLACE('1B2D', 'BD', 'YZ')는 연속된 문자열 'BD'를 찾아 치환하는데, '1B2D'에는 'BD'가 연속으로 존재하지 않으므로 변경되지 않아 '1B2D'가 됩니다. 따라서 정답은 '000ABXXX, 1B2D'입니다.