SQL ( CASE WHEN THEN )
문제내용
sex_upon_intake 컬럼안에 'Neutered' 및 'Spayed' 단어가 들어있으면 중성화 여부를 아이디순으로 조회하는 SQL문 작성, 이때 중성화가 되어있따면 'O', 아니라면 'X'라고 표시가 필요
DB에 정보가 아니고 새로운 열을 만들때 사용할때
CASE - WHEN - THEN
사용예시
#1 성별에 따른 표시
SELECT USER_ID, GENDER,
CASE
WHEN GENDER = 1 THEN 'Male'
WHEN GENDER = 0 THEN 'Female'
ELSE 'Unknown'
END AS gender_label
FROM USER_INFO;
- - - - - - - - GENDER 컬럼값의 1이면 MALE , 0이면 FEMALE , 두 조건 모두 충족하지않으면 Unknown
#2 학생 점수에 따른 등급 부여
SELECT STUDENT_ID, NAME, SCORE,
CASE
WHEN SCORE >= 90 THEN 'A'
WHEN SCORE >= 80 THEN 'B'
WHEN SCORE >= 70 THEN 'C'
WHEN SCORE >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM STUDENTS;
문제 정답
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
ORDER BY
ANIMAL_ID;