https://school.programmers.co.kr/learn/courses/30/lessons/59409
프로그래머스 문제인데 문제는 어렵지 않고, 조건에 맞게 데이터를 달리 보여주는 문제이다.
IF문과 CASE WHEN문을 사용하는 경우 둘다 작성가능했다.
IF문과 CASE문 둘중에 어떤걸 어떤 상황에 적재적소에 사용해야 하는지 정리해봄
일단 IF 문: IF 문은 간단한 조건을 처리하는 데 주로 사용. 주어진 조건이 참 또는 거짓인 경우에만 처리.
예를 들어, "만약 A가 참이면 B를 수행하고 그렇지 않으면 C를 수행"과 같은 간단한 조건에 사용한다.
CASE WHEN 문: CASE WHEN 문은 여러 가지 조건을 처리하는 데 사용. 여러 조건에 따라 다른 결과를 반환하거나 다양한 동작을 수행할 때 유용하게 사용할 수 있다.
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE '%NEUTERED%' OR SEX_UPON_INTAKE LIKE '%SPAYED%','O','X') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC
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 ASC
위 문제는 조건을 하나로 표현할 수 있기 때문에 CASE WHEN이 번거로워 보이나, 조건이 여러개인 경우에는 CASE WHEN문을 사용해야 한다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END
위와 같이 CASE문은 여러개의 조건을 처리할 때 사용가능한 쿼리문이다.