프로그래머스/My SQL

중성화 여부 파악하기

싱싱한복초이 2024. 11. 3. 23:32

https://school.programmers.co.kr/learn/courses/30/lessons/59409

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

[문제]

보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.


[나의 풀이]

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;

 

[다른 풀이]

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;

 

 

정규표현식을 사용한 경우

SELECT 
ANIMAL_ID,
NAME, 
IF(SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', 'O', 'X') AS '중성화'
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID ASC;

-참고

https://velog.io/@gillog/MySQL-REGEXPRegular-Expression%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D

 

[MySQL] REGEXP(Regular Expression(정규 표현식))

REGEXP는 LIKE를 이용한 검색과 달리 Regular Expression(정규 표현식)를 이용해 검색한다.REGEXP를 사용하면 SQL에서 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 걸어 데이터를 검색할

velog.io