🔗 문제 링크
🔍 문제 요약
- 중성화 여부 확인하기
- SEX_UPON_INTAKE 컬럼에 Neutered 또는 Spayed 라는 단어가 들어있으면 중성화 ㅇ
- 중성화가 되어있으면 O, 아니라면 X 출력
- 동물의 아이디, 이름, 중성화 여부를 출력
원래 코드를 CASE WHEN 절을 사용해서 약 4줄에 거쳐 코드를 작성하였다.
SELECT ANIMAL_ID, NAME,
CASE
WHEN (SEX_UPON_INTAKE LIKE '%Neutered%') THEN 'O'
WHEN (SEX_UPON_INTAKE LIKE '%Spayed%') THEN 'O'
ELSE 'X'
END AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
이것보다 더 가독성 좋은 방법으로
- IF 절 사용하기
IF 절을 사용해서 Neutered 또는 Spayed가 포함되면 O, 아니면 X 출력
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
- REGEXP 활용
REGEXP를 활용해서 한 줄로 간단하게 코드 작성이 가능함SELECT ANIMAL_ID, NAME, IF (SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', 'O', 'X') AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID
'SQL > MySQL' 카테고리의 다른 글
프로그래머스 LV 1. 오랜 기간 보호한 동물(2), DATEDIFF 함수 (0) | 2025.04.07 |
---|---|
[MySQL] HackerRank - Ollivander's Inventory 문제 풀이 (0) | 2025.03.26 |
[MySQL] HackerRank - The Report 문제 풀이 (0) | 2025.03.24 |
[MySQL] HackerRank - Weather Observation Station 20 문제 풀이 (0) | 2025.03.19 |
[MySQL] HackerRank - Top Competitors 문제 풀이 (0) | 2025.03.13 |