본문 바로가기
SQL/문제풀이

프로그래머스 중성화 여부 파악하기 풀이(MySQL)

by wakestand 2019. 9. 9.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : 중성화 여부 파악하기

SQL : MySQL

 

ANIMAL_INS 테이블에서 SEX_UPON_INTAKE가 'Neutered' or 'Spayed'

로 시작할 경우 중성화 컬럼에 O를 주고 그렇지 않을 경우에는 X를 줘서

 

ANIMAL_ID, NAME, 중성화 컬럼 이렇게 3개를 반환하는 문제인데

마지막으로 ANIMAL_ID를 기준으로 오름차순 정렬을 해 줘야 한다

 

내 풀이방법은 아래와 같은데

 

MySQL에서는 Oracle의 Decode 대신 IF를 사용해주면 되는데

SEX_UPON_INTAKE를 1부터 8까지, 1부터 6까지 잘라봐서

'Neutered' 혹은 'Spayed' 라면 O 아니면 X를 중성화 컬럼에 넣어줘서 반환하면 되는데

 

마지막에 ORDER BY ANIMAL_ID 로 오름차순 정렬을 하는 것을 잊지 말자

 

프로그래머스에 바로 적용 가능한 코드는 아래와 같다

 

SELECT ANIMAL_ID, NAME, IF(SUBSTRING(SEX_UPON_INTAKE,1,8) = 'Neutered' 
                           OR SUBSTRING(SEX_UPON_INTAKE,1,6) = 'Spayed', 'O', 'X') AS 중성화
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID
반응형

댓글