카테고리 없음

SQL ( CASE WHEN THEN )

SQL-Basic 2024. 8. 19. 15:59

문제내용

 

 

 

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;