문제
입력 코드
1.
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS AS I
JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.SEX_UPON_INTAKE LIKE 'Intact%'
AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%'
OR O.SEX_UPON_OUTCOME LIKE 'Neutered%')
ORDER BY ANIMAL_ID;
2.
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS AS I
JOIN ANIMAL_OUTS AS O
WHERE (I.ANIMAL_ID = O.ANIMAL_ID)
AND (I.SEX_UPON_INTAKE != O.SEX_UPON_OUTCOME)
ORDER BY I.ANIMAL_ID;
→ 보호소에 들어올 당와 보호소에 들어온 후의 성별이 다른 동물을 찾는 방법도 있음 (중성화가 아니라면 성별이 바뀌는 일이 없기 때문)
비교연산자
# 1. !=
I.SEX_UPON_INTAKE != O.SEX_UPON_OUTCOME
# 2. <>
I.SEX_UPON_INTAKE <> O.SEX_UPON_OUTCOME
# 3. NOT LIKE
I.SEX_UPON_INTAKE NOT LIKE O.SEX_UPON_OUTCOME
3. 정규식(REGEXP)
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS AS A
LEFT JOIN ANIMAL_OUTS AS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE REGEXP_LIKE(A.SEX_UPON_INTAKE, 'Intact')
AND REGEXP_LIKE(B.SEX_UPON_OUTCOME, 'Spayed|Neutered')
ORDER BY A.ANIMAL_ID;
코드 설명
#SELECT #JOIN #LIKE #ORDER BY #비교연산자 #정규식 #REGEXP
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/59045
'SQL' 카테고리의 다른 글
#72. STRING, DATE : 취소되지 않은 진료 예약 조회하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.30 |
---|---|
MySQL 예약어 (0) | 2023.08.29 |
#70. JOIN : 5월 식품들의 총매출 조회하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.29 |
#69. JOIN : 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.28 |
#68. JOIN : 주문량이 많은 아이스크림들 조회하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.28 |