코딩테스트/SQL
프로그래머스_중성화 여부 파악하기
zyin
2021. 1. 20. 16:37
문제
코딩테스트 연습 - 중성화 여부 파악하기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
풀이
CASE WHEN은 조건문으로 조건에 따라 값을 지정해주는 역할을 한다. WHEN을 여러번 사용하여 다음과 같이 다중 조건문을 표현할 수 있다.
-- 단일 조건문 사용
SELECT
CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일때 값 END 컬럼명
FROM 테이블명;
-- 다중 조건문 사용
SELECT
(CASE
WHEN 조건절 THEN 참일때 값
WHEN 조건절 THEN 참일때 값
WHEN 조건절 THEN 참일때 값
ELSE 거짓일때 값
END) 컬럼명
FROM 테이블명;
IF( ) 함수는 조건문으로 조건에 따라 값을 지정해주는 역할을 한다.
SELECT
IF(조건절,참일때 값,거짓일때 값) AS 컬럼명
FROM 테이블명;
코드
--MYSQL #1
SELECT ANIMAL_ID, NAME,
CASE
WHEN SEX_UPON_INTAKE LIKE "Spayed%" THEN "O"
WHEN SEX_UPON_INTAKE LIKE "Neutered%" THEN "O"
ELSE "X"
END AS "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
--MYSQL #2
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;