반응형
문제 링크: 프로그래머스 - 59047번
✅ 문제 요약
ANIMAL_INS 테이블에서 이름에 "EL"이 포함된 개(Dog) 를 찾아 해당 동물의 ANIMAL_ID와 NAME을 출력하는 SQL 문제입니다. 대소문자는 구분하지 않으며, 결과는 이름 순으로 정렬해야 합니다.
테이블 구조
컬럼명설명
| ANIMAL_ID | 동물의 고유 ID |
| ANIMAL_TYPE | 동물 종류 (예: Dog, Cat) |
| DATETIME | 보호소에 들어온 시각 |
| INTAKE_CONDITION | 입소 당시 건강 상태 |
| NAME | 이름 |
| SEX_UPON_INTAKE | 입소 시 성별 및 중성화 여부 |
🔍 접근 방법
- 이름에 'EL' 포함: LIKE '%EL%' 사용
- 대소문자 구분 없음: 대소문자 구분이 없는 환경이므로 LIKE만 사용해도 통과
- 혹은 UPPER(NAME) LIKE '%EL%' 로 명시할 수 있음
- 동물 종류가 개: ANIMAL_TYPE = 'Dog'
- 이름 기준 오름차순 정렬: ORDER BY NAME
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME;
📚 함께 정리하는 SQL 문자열 함수
1. LIKE
- 기능: 문자열 패턴 매칭
- 와일드카드:
- % : 0개 이상의 임의 문자
- _ : 임의의 단일 문자
- 예시:
- SELECT * FROM ANIMAL_INS WHERE NAME LIKE '%EL%';
2. UPPER(column) / LOWER(column)
- 기능: 대소문자 통일
- 예시:
- SELECT * FROM ANIMAL_INS WHERE UPPER(NAME) LIKE '%EL%';
🧠 추가 팁
- LIKE '%EL%'는 이름 중간에 'EL'이 포함된 경우를 모두 포함합니다.
- 정렬 시 ORDER BY NAME 은 알파벳 오름차순 정렬을 의미합니다.
- 문자열 검색은 성능 이슈가 생길 수 있으므로 인덱스 최적화가 필요할 수 있습니다.
✅ 최종 정답
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME;
반응형
'알고리즘' 카테고리의 다른 글
| [SQL 코딩 테스트] 동물 보호소에 가장 먼저 들어온 동물은? (0) | 2026.01.10 |
|---|