동물 보호소에 들어온 동물 중 젊은 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요.
이때 결과는 아이디 순으로 조회해주세요.
조건을 쓰는 방식이 다양하게 있는데, 어떤 방식을 쓰느냐에 따라 효율이 갈릴 것 같아서 정리!
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION NOT LIKE 'Aged';
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION NOT IN ('Aged')
위의 두 조건과는 다르게 다양한 데이터값을 넣을수 있어서 복수 조건이 필요할 때 좋을것 같다.
SELECT ins1.ANIMAL_ID, ins1.NAME
FROM ANIMAL_INS as ins1
WHERE NOT EXISTS (SELECT * FROM ANIMAL_INS AS ins2 WHERE ins1.INTAKE_CONDITION = 'Aged')
쓸데없이 번거롭게 풀기는 했지만, 다른 테이블의 서브쿼리에서 WHERE NOT EXISTS로 바로 표현 가능하다는게 매력적인 것 같다. 조건을 조금더 명료하게 보기 좋을것 같다.
# NOT LIKE로 풀기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION NOT LIKE 'Aged';
# NOT IN 으로 풀기(괄호안 조건 안되는걸 가져올수 있음)
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION NOT IN ('Aged')
# != 으로도 풀기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'