[231108] SQLD 2과목_1장(41~50)

ese2o·2023년 11월 8일

SQLD

목록 보기
5/8

교재: SQL 자격 검정 실전 문제
2과목 제1장 - SQL 기본
41번 ~ 50번

41번

SELECT SUM(CC)
FROM (
	SELECT(LENGTH(C1) -
    LENGTH(REPLACE(C1,
    CHR(10))) + 1) CC
    FROM TAB1

LENGTH : 문자열의 길이를 반환하는 함수
CHR : 주어진 ASCII 코드에 대한 문자를 반환하는 함수 (CHR(10)->줄바꿈을 의미(문제에 제시됨))
REPLACE : 문자열을 치환하는 함수 (REPLACE(C1, CHR(10)) -> 줄바꿈 제거)

C1의 길이: 3, 5
줄바꿈 또한 하나의 문자를 의미한다.
LENGTH(REPLACE(C1, CHR(10))) : (2, 3)

REPLACE(컬럼,'기존 문자열', '새로운 문자열') : 특정 컬럼의 특정 문자열을 새로운 문자열로 대체한다.
만약 새로운 문자열이 없으면 ''으로 치환, 즉 제거한다는 뜻이다.

3이 나왔는데, 각 열마다 +1을 해주어야 한다. 따라서 답은 5이다.

42번

SELECT TO_CHAR(TO_DATE('2015.01.10 10', 'YYYY.MM.DD HH24') + 1/24/(60/10), 'YYYY.MM.DD HH24:MI:SS') FROM DUAL;

오라클에서 날짜의 연산은 숫자의 연산과 같다.
1 = 하루
1/24 = 1시간
1/24/6 = 10분

2015.01.10 10시에 10분을 더한 결과가 나온다.

답:3번

43번


답: LOC WHEN 'NEW YORK' THEN 'EAST'

44번

NVL(ISNULL) 함수
NVL(A, 지정값) : A가 NULL인 경우 지정값, 그렇지 않은 경우 값을 그대로 출력한다.
예를 들어 선지 3번, SUM(~)이 NULL인 경우 0을 출력하는 것이다.
NVL은 ISNULL과 쓰임이 같다.

CASE 표현
SEARCH

CASE
	WHEN 조건1 THEN 값
    WHEN 조건2 THEN 값
    ELSE 값
END as 결과컬럼명

SIMPLE

CASE 컬럼명
	WHEN 값 THEN 값
	WHEN 값 THEN 값
    ELSE 값
END as 결과컬럼명

새로운 결과를 새로운 컬럼 '결과컬럼명'에 저장해 주는 것이다.

선지 4번은 ELSE 0 으로 표시해야 다른 3개의 지문과 같은 결과가 나온다.

45번


1번: 실행 결과가 없다.(X) -> NULL
2번: 정답
3번: ISNULL을 사용해야 한다.
4번: 실행 결과는 2이다. : NULL값도 같이 카운팅된다.

46번

답: NULLIF

NULLIF(A, B)
A == B이면 NULL
A != B이면 A

단일행 NULL 관련 함수 정리
NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2) : 표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다. 단 표현식 1과 2의 데이터타입이 같아야 한다.
NULLIF(표현식1, 표현식2) : 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.
COALESCE(표현식1, 표현식2, ... ) : 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 리턴한다.

47번

0/300 : 0
5000/0 : 에러발생 - 실행이 아예 되지 않는다.
1000/NULL : NULL - NULL이 포함된 연산의 결과는 NULL이다.

48번

답: 3번
각 ROW에서 첫번째로 NULL이 아닌 값인 1, 2, 3을 반환한다.

49번

답: NVL, NULLIF, COALESCE

50번


COUNT: NULL값을 포함한 행의 수
나머지: NULL값 제외
20/2 = 10
20/1 = 20
20/1 = 20
답: 3번

0개의 댓글