본문 바로가기
코딩테스트/SQL

[프로그래머스] String, Date 〉Lv2. 중성화 여부 파악하기

by imsha 2021. 10. 27.

문제 설명

 


예시

 


풀이 방법

보호소 동물의 중성화 여부를 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 쿼리를 작성하는 문제입니다. 이때 중성화가 되어 있다면 'O', 아니라면 'X'로 표시 합니다. 이를 위해 SELECT절에 조회할 컬럼명을 우선 선정해 봅니다. 동물의 아이디, 이름, 중성화 여부. 동물의 아이디와 이름은 ANIMAL_ID와 NAME으로 표현하면 됩니다. 그러나 중성화 여부는 CASE문을 작성하여 중성화 여부를 판별하고, 그에 맞는 문자로 표시하는 것까지 해봅시다. 우선 CASE문의 사용법을 알아봅시다.

CASE
	WHEN 조건 THEN 반환값
	WHEN 조건 THEN 반환값
	ELSE 'WHEN 조건에 해당 안되는 경우 반환값'
END

WHEN - THEN은 한쌍이며, 다수가 존재 할 수 있습니다. ELSE가 존재하면 모든 WHEN조건에 해당하지 않을 경우 반환값을 설정할 수 있습니다. 만약 ELSE가 없다면 WHEN조건에 해당하지 않는 경우는 NULL을 반환합니다. 이 후 END를 써서 CASE문을 닫습니다. 이를 활용하여 아래 문제 풀이와 같이 해당 문제를 풀어보았습니다.

 

 


문제 풀이

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

 


실행 결과

이하 생략...

댓글