프로그래머스 SQL Lv 2 - 이름에 el이 들어가는 동물 찾기

정새·2023년 12월 3일
0

이번에 다뤄볼 문제는 대소문자 LIKE 조건을 통해 데이터를 조회하는 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/151138
프로그래머스 기준 Lv.2 문제이며, 풀이 후 해설과 함께 정리해보도록 하겠습니다.


문제에서 주어진 요구사항은 다음과 같습니다.

1. 이름의 대소문자를 구분하지않고 'EL'이 들어간 이름을 탐색 (앞, 뒤 모두)
2. 'EL'이 들어간 이름의 개(강아지)를 모두 탐색
3. 위 조건을 만족하는 개의 아이디와 이름을 조회하고 결과는 모두 이름 순으로 조회

이를 해결하기 위해선 대소문자를 구분하지 않는 LIKE와 다중 조건문이 필요합니다.

이러한 요구사항에 맞추어 조합하여 주어진 문제에 대한 SQL문을 작성해보겠습니다.


가장 먼저 조회가 필요한 컬럼들과 테이블에 대한 SELECT 문을 작성합니다.

조건을 만족하는 데이터의 이름과 아이디를 조회하기 위한 SELECT 문을 작성합니다.

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS;

이후 조회하고자 하는 데이터에 대해 WHERE을 활용하여 조건을 설정합니다.

먼저 대소문자를 구분하지 않는 LIKE 문을 작성해보겠습니다.

대소문자의 모든 경우의 수를 작성하는 방법도 있지만, 가장 좋은 방법은 통일하는 방법입니다.

조건을 걸고자 하는 컬럼의 데이터를 모두 대문자/소문자로 치환하여 해결 할 수 있습니다.

저는 전부 대문자로 통일했으며, 개(강아지)를 선택하기 위한 조건도 함께 작성했습니다.

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
    WHERE UPPER(NAME) LIKE '%EL%' AND ANIMAL_TYPE = 'Dog';

마지막으로 전체 데이터를 이름을 기준으로 정렬해서 조회할 수 있도록 작성합니다.

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
    WHERE UPPER(NAME) LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
    	ORDER BY NAME;

결과적으로 LIKE의 대소문자 부분에서 조금 시간이 걸렸지만, 잘 해결할 수 있었습니다.


긴 글 읽어주셔서 감사합니다.

profile
intersection for analysis, modeling, science ... working on it !

0개의 댓글

관련 채용 정보