728x90
매일 SQLD 기출 문제 풀기 챌린지
문제9.
다음 중 결과값이 다른 것은?
① SELECT SUBSTR(TO_CHAR('20190504'),5,2) FROM DUAL;
② SELECT EXTRACT(MONTH FROM DATE '2020-05-01') FROM DUAL;
③ SELECT CONCAT('0', '5') FROM DUAL;
④ SELECT TRIM('05') FROM DUAL;
해설해보기
#1번
TO_CHAR()를 사용해서
숫자형의 20190504 를 문자형 '20190504'로 변경후
특정 문자를 추출하는 함수인 SUBSTR()를 사용하여
20190504에서 5번째 자리에 위치한 0부터 2개를 추출하여 '05'가 추출됨
#2번
EXTRACT([날짜 시간 등 보고싶은 것] FROM [입력날짜or컬럼명]) 함수 = EXTRACT FUNCTION
- YEAR, MONTH, DAT, HOUR, MINUTE, TIMESTAMP 등 날짜 및 시간과 같은 특정 값을 추출하는 함수
- 컬럼명에 들어갈 컬럼은 datatype이 FROM 앞에 들어가는 type과 일치해야함
- datatime 또는 interval 표현식에서 사용
따라서
EXTRACT( MONTH FROM DATE '2020-05-01')
DATE '2020-05-01'에서 MONTH를 추출하겠다는 것!
주의할 점은 05가 출력되는 것이 아님!
'5'가 출력됨
#3번
문자열을 합치는 함수 CONCAT() 을 통해
CONCAT('0', '5') 0과 5를 합쳐
'05'가 출력됨
#4번
양쪽의 공백을 자르는 TRIM()함수를 사용
TRIM('05')에는 공백이 없기 때문에
'05'가 그대로 출력됨
따라서 정답은
②
직접 실행해보기
#1번
select substr(to_char('20190504'), 5, 2)
from dual;
#2번
select extract(month from date '2020-05-01')
from dual;
#3번
select concat('0', '5')
from dual;
#4번
select trim('05')
from dual;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 11> Null 값 처리하는 일반함수 기출문제 (0) | 2024.03.11 |
---|---|
<SQLD 10> 논리연산자 AND와 OR에 대한 기출문제 (0) | 2024.03.10 |
<SQLD 8>숫자함수 round 함수에 대한 기출문제 (0) | 2024.03.08 |
<SQLD 7> 문자 함수 이해에 대한 기출문제 (0) | 2024.03.07 |
<SQLD 6> 문자 함수 SUBSTR에 대한 기출문제 (0) | 2024.03.06 |