알고리즘/SQL 풀이

[MySQL] 중성화 여부 파악하기

sesam 2023. 10. 12. 11:25
728x90

문제

 

 

풀이

📌 CASE     조건문
    WHEN SEX_UPON_INTAKE = 'Neutered Male' OR SEX_UPON_INTAKE = 'Spayed Female'     WHEN 조건에 해당되면,
        THEN 'O'      TEHN 'O' 반환
    ELSE 'X'   그렇지 않으면 'X' 반환
    END AS '중성화'  →  END : CASE문 종료, AS: 결과값의 열 이름

✔ CASE문
1) WHEN - THEN은 항상 같이 사용하기
2) WHEN - THEN 개수 상관 없음
3) ELSE가 없고, WHEN - THEN 조건 충족하지 않으면 NULL 값 반환
4) 조건문 마지막에 END 꼭 써주기
CASE
    WHEN 조건1 THEN 조건1 충족할 때 반환되는 값
    WHEN 조건2 THEN 조건2 충족할 때 반환되는 값
    WHEN 조건3 THEN 조건3 충족할 때 반환되는 값
    ELSE 모든 조건 해당되지 않을 때 반환되는 값
END (AS '열 별칭")

 

📌 ORDER BY ANIMAL_ID;

ANIMAL_ID로 정렬

 

정답

SELECT ANIMAL_ID, NAME,
CASE
    WHEN SEX_UPON_INTAKE = 'Neutered Male' OR SEX_UPON_INTAKE = 'Spayed Female' 
        THEN 'O'
    ELSE 'X'
    END AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

 

 

오답이었던 이유

CASE문에서 조건절을 WHEN을 사용해야하는데, WHERE을 사용했다.