프로그래머스 SQL - 31~36, 56(LIKE, IN 조건문)

yeyeyeyeye·2025년 7월 15일

35번: sql 날짜데이터 간 연산 가능. 굳이 date_format 사용하지 않아도 됨.

36번: LIKE, IN 조건문

  • LIKE vs IN 조건문
    • LIKE 조건문: 패턴 매칭으로 텍스트 필터링
      • 주로 와일드카드와 함께 사용
      • %: 0개 이상의 문자와 일치
      • -: 정확히 1개의 문자와 일치
      • WHERE name LIKE ‘A_’ ;
        → 이름이 두 글자이고, ‘A’로 시작하는 데이터 조회
      • WHERE email LIKE ‘%@gmail.com’;
        → 이메일에 특정 문자열이 포함된 경우
    • IN 조건문: 여러 조건을 동시에 검사
      • 여러 값 중에서 일치하는 데이터를 조회할 때 사용. 다수의 값 비교 시 유리.
      • OR 조건을 간단히 표현 가능
      • WHERE country IN (’Korea’, ‘Japan’, ‘China’);
        → 특정 국가의 데이터를 조회
      • 서브쿼리와 함께 사용하기
        → WHERE category_id IN (SELECT id FROM categories WHERE name = ‘Electronics’);
    • 두 조건문 함께 사용하기:
      예제: 이메일이 특정 도메인으로 끝나고, 특정 국가에 속한 사용자 조회
      - WHERE email LIKE ‘%@gmail.com’
      AND country IN (’Korea’, ‘Japan’, ‘China’);

LIKE 사용

select i.animal_id ANIMAL_ID,
i.animal_type ANIMAL_TYPE,
i.name NAME
from animal_ins i inner join animal_outs o on i.animal_id=o.animal_id
where i.sex_upon_intake like ('Intact%')
and (o.sex_upon_outcome like ('Neutered%') or o.sex_upon_outcome like ('Spayed%'))

IN 사용 → 값이 정확이 일치해야 함.

select i.animal_id ANIMAL_ID,
i.animal_type ANIMAL_TYPE,
i.name NAME
from animal_ins i inner join animal_outs o on i.animal_id=o.animal_id
where i.sex_upon_intake like ('Intact%')
and o.sex_upon_outcome IN ('Neutered Male','Spayed Female')

profile
안녕하세요? 데이터분석가 되고 싶어요.

0개의 댓글