Language/SQL

[프로그래머스] 보호소에서 중성화한 동물

공부좀하시졍 2022. 7. 5. 15:29

SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE LIKE 'Intact%' and 
    (B.SEX_UPON_OUTCOME LIKE 'Neutered%' OR 
     B.SEX_UPON_OUTCOME LIKE 'Spayed%')
ORDER BY A.ANIMAL_ID;

보호소에 들어올 당시에는 중성화 되지 않았지만 보호소를 나갈 때 중성화된 동물을  조회하는 문제다.

ANIMAL_INS의 SEX_UPON_INTAKE, ANIMAL_OUTS의 SEX_UPON_OUTCOME 값을 확인하면 된다.

Intact ~, Spayed~, Neutered~ 총 3가지가 있다.

  • Intact ~ 는 중성화 되지 않은 상태를 뜻한다.
  • Spayed~ 와 Neutered~는 중성화 된 상태를 뜻한다.

처음에는 Neutered로만 비교 해서 오답처리

그 다음으로 Neutered, Spayed 에 IN 명령어를 처리해서 오답처리 됐었다...

 

LIKE 연산자

  • 특정 문자가 포함되어 있는지 검사할 때 사용한다.
  • SELECT [필드명] FROM [테이블명] WHERE [필드명] LIKE '특정 문자열'

 

특정 문자열 형태
'특정 문자열%' 특정 문자로 시작하 데이터 검색
'%특정 문자열' 특정 문자로 끝나는 데이터 검색
'%특정 문자열%' 특정 문자를 포함하는 데이터 검색

 

[실행결과]