기록

프로그래머스_중성화 여부 파악하기 본문

코딩테스트/SQL

프로그래머스_중성화 여부 파악하기

youngyin 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;

 

Comments