본문 바로가기
프로그래머스/MySQL

[프로그래머스] 중성화 여부 파악하기 - MySQL - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2024. 9. 25.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

반응형

2. 풀이과정

해당 문제는 보호소의 동물이 중성화되었는지 아닌지 파악하는 문제이다.

중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어가 있다.

동물 아이디와 이름, 중성화 여부를 조회하며 중성화 여부는 'O' 또는 'X'로 조회한다.

중성화 여부를 나타내는 컬럼의 값에 'Neutered' 또는 'Spayed'라는 단어가 들어가 있는지 파악하기 위해서는 LIKE를 활용하면 된다. 각 단어 앞 뒤에 % 문자를 넣어 컬럼의 값 어디에도 해당 단어가 들어가는지 파악하면 된다.

중성화 여부를 조회하여 결과를 ' 'O' 또는 'X'로 조회해야 하므로 CASE WHEN THEN ELSE END 구문을 활용한다.

CASE WHEN (조건 1) THEN (조건 1이 참일 때 대체할 값)

        WHEN (조건 2) THEN (조건 2가 참일 때 대체할 값)

        ...

        ELSE (조건들이 모두 거짓일 때 대체할 값)

END

이렇게 작성하면 조건문으로 사용할 수 있다.

최종 결과는 아이디 순으로 조회한다.

 

  1. 동물 아이디와 이름을 조회하고 SELECT ANIMAL_ID, NAME,
  2. 중성화 여부가 적혀있는 컬럼의 값에 'Neutered' 또는 'Spayed'라는 단어가 있다면 'O'로 조회하고 CASE WHEN (SEX_UPON_INTAKE LIKE 'Neutered%') OR (SEX_UPON_INTAKE LIKE 'Spayed%') THEN 'O'
  3. 반면에 중성화 여부가 적혀있는 컬럼의 값에  'Neutered' 나 'Spayed'라는 단어가 하나라도 없으면 'X'로 조회한다. ELSE 'X'
  4. 중성화 여부를 조회한 컬럼의 이름을 '중성화'라고 지정한다. END AS '중성화'
  5. 값을 조회할 테이블을 지정한다. FROM ANIMAL_INS
  6. 최종 결과는 동물의 아이디 순으로 조회한다. ORDER BY ANIMAL_ID
728x90

3. 소스코드

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
728x90
반응형