반응형
해설 : 조건문과 LIKE문을 활용할 수 있는가 묻는 문제이다.
"ANIMAL_INS" 테이블에서 "ANIMAL_ID", "NAME", "SEX_UPON_INTAKE" 필드를 조회하면 되는데, "SEX_UPON_INTAKE" 필드 같은 경우에는 중성화된 동물은 'O', 그렇지 않은 동물은 'X' 로 표시하면 된다.
"SEX_UPON_INTAKE" 필드 값(문자열)이 "Neutered" 또는 "Spayed" 라는 단어로 시작한다면 중성화된 동물이라고 한다.
단어 포함 여부를 판단하기 위해 LIKE문을 쓰는 것이고, 이 여부를 판단하여 주어진 조건 별로 처리 하기 위해 조건문을 쓰는 것이다.
대표적인 조건문으로 IF, CASE가 있는데 이 2가지를 사용하는 방법을 각각 소개할 것이다.
1) 조건문으로 IF를 사용
SELECT ANIMAL_ID, NAME,
IF((SEX_UPON_INTAKE LIKE 'Neutered%')
OR (SEX_UPON_INTAKE LIKE 'Spayed%'),"O","X") as 중성화
FROM ANIMAL_INS
IF(조건, TRUE일 경우 처리, FLASE일 경우 처리) 형태로 작성하면 된다. 조건 안에서 OR문을 사용하여 두 조건중 하나라면 TRUE로 처리('O' 표시)하게 하였다. 두 조건 다 맞지 않는다면 FALSE로 처리('X' 표시) 한다.
LIKE 'Neutered%' : "Neutered" 문자열로 시작하는 문자열인 경우
2) 조건문으로 THEN을 사용
SELECT ANIMAL_ID, NAME,
CASE
WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN "O"
WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN "O"
ELSE "X"
END AS 중성화
FROM ANIMAL_INS;
또는
SELECT ANIMAL_ID, NAME,
CASE
WHEN SEX_UPON_INTAKE LIKE 'Neutered%'
OR SEX_UPON_INTAKE LIKE 'Spayed%' THEN "O"
ELSE "X"
END AS 중성화
FROM ANIMAL_INS;
WHEN 조건 THEN 처리 형태로 나열하여 작성하면 되고, 모든 조건에 맞지 않는 경우에는
ELSE 처리 형태로 작성하면 된다.
그리고 처음과 끝에는 각각 CASE와 END를 작성해준다.
반응형
'DB > SQL Problems' 카테고리의 다른 글
[SQL-String, Date, 난이도 중하] 루시와 엘라 찾기 (0) | 2020.12.08 |
---|---|
[SQL-String, Date, 난이도 중하] 이름에 el이 들어가는 동물 찾기 (0) | 2020.12.08 |
[SQL-String, Date, 난이도 중하] DATETIME에서 DATE로 형 변환 (0) | 2020.12.08 |
[SQL-String, Date, 난이도 중] 오랜 기간 보호한 동물(2) (0) | 2020.12.08 |
[SQL-GROUP BY, 난이도 중하] 고양이와 개는 몇 마리 있을까 (0) | 2020.12.08 |
댓글