728x90
반응형
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
이렇게 작성하면 조건문으로 사용할 수 있다.
최종 결과는 아이디 순으로 조회한다.
- 동물 아이디와 이름을 조회하고 SELECT ANIMAL_ID, NAME,
- 중성화 여부가 적혀있는 컬럼의 값에 'Neutered' 또는 'Spayed'라는 단어가 있다면 'O'로 조회하고 CASE WHEN (SEX_UPON_INTAKE LIKE 'Neutered%') OR (SEX_UPON_INTAKE LIKE 'Spayed%') THEN 'O'
- 반면에 중성화 여부가 적혀있는 컬럼의 값에 'Neutered' 나 'Spayed'라는 단어가 하나라도 없으면 'X'로 조회한다. ELSE 'X'
- 중성화 여부를 조회한 컬럼의 이름을 '중성화'라고 지정한다. END AS '중성화'
- 값을 조회할 테이블을 지정한다. FROM ANIMAL_INS
- 최종 결과는 동물의 아이디 순으로 조회한다. 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
반응형
'프로그래머스 > MySQL' 카테고리의 다른 글
[프로그래머스] 상품 별 오프라인 매출 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.30 |
---|---|
[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.29 |
[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.28 |
[프로그래머스] 입양 시각 구하기(1) - MySQL - 우당탕탕 개발자 되기 프로젝트 (2) | 2024.09.27 |
[프로그래머스] 고양이와 개는 몇 마리 있을까 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.24 |
[프로그래머스] 진료과별 총 예약 횟수 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.23 |
[프로그래머스] 조건에 맞는 아이템들의 가격의 총합 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.13 |
[프로그래머스] 카테고리 별 상품 개수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.12 |