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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드설명

INNER JOIN + LIKE 를 활용합니다.

코드

SELECT AI.ANIMAL_ID, AI.ANIMAL_TYPE, AI.NAME
FROM ANIMAL_INS AS AI
INNER JOIN ANIMAL_OUTS AS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AI.SEX_UPON_INTAKE LIKE 'INTACT%' AND (AO.SEX_UPON_OUTCOME LIKE 'SPAYED%' OR AO.SEX_UPON_OUTCOME LIKE 'NEUTERED%')

 

ORACLE

REGEXP_LIKE를 활용합니다.

여기서 'i'를 활용하여 대소문자를 무시하는데, 이떄 'i'는 'IGNORE CASE'의 약자입니다.

SELECT AO.ANIMAL_ID, AO.ANIMAL_TYPE, AO.NAME
FROM ANIMAL_INS AI
INNER JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE REGEXP_LIKE(AI.SEX_UPON_INTAKE, 'INTACT MALE|INTACT FEMALE', 'i') 
AND REGEXP_LIKE(AO.SEX_UPON_OUTCOME, 'SPAYED FEMALE|Neutered MALE', 'i')
ORDER BY AI.ANIMAL_ID

 

정규표현식을 바꿔서 할 수 있습니다.

^(SPAYED)를 활용함으로써 시작부분이 SPAYED인 문자열을 찾습니다.

만약 SPAYED로 끝나는경우를 찾을경우, (SPAYED)$ 로 사용합니다.

SELECT AO.ANIMAL_ID, AO.ANIMAL_TYPE, AO.NAME
FROM ANIMAL_INS AI
INNER JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE REGEXP_LIKE(AI.SEX_UPON_INTAKE, '^INTACT', 'i') 
AND REGEXP_LIKE(AO.SEX_UPON_OUTCOME, '^(SPAYED|NEUTERED)', 'i')
ORDER BY AI.ANIMAL_ID

+ Recent posts