본문 바로가기
Computer/Algorithm_SQL

[Programmers] 이름에 el이 들어가는 동물 찾기 (Success)

by HJ0216 2023. 9. 22.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📝 Language: Oracle

 

1
2
3
4
5
6
7
8
  SELECT ANIMAL_ID, 
         NAME
    FROM ANIMAL_INS
   WHERE LOWER(NAME) LIKE '%el%'
     AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
;
 
 

🙂 확인 사항

1. ANIMAL_INS 테이블

2. 이름에 EL이 포함(대소문자 구분 X)

3. 아이디, 이름 조회

4. 이름 오름차순

 

😮  외의 풀이

1
2
3
4
5
6
7
8
9
10
11
  SELECT ANIMAL_ID, 
         NAME
    FROM ANIMAL_INS
   WHERE (NAME LIKE '%EL%' 
      OR NAME LIKE '%El%'
      OR NAME LIKE '%eL%'
      OR NAME LIKE '%el%')
     AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
;
 
 

연산자 우선 순위가 AND → OR이므로 OR 조건에 () 필요

 

1
2
3
4
5
6
7
8
9
10
11
WITH SUB AS (
  SELECT ANIMAL_ID, NAME
  FROM ANIMAL_INS
  WHERE ANIMAL_TYPE = 'Dog'
)
  SELECT *
    FROM SUB
   WHERE LOWER(NAME) LIKE '%el%'
ORDER BY NAME
;
 
 

공통 표현식 (Common Table Expression, CTE) 사용

 

1
2
3
4
5
6
7
8
  SELECT ANIMAL_ID, 
         NAME
    FROM ANIMAL_INS
   WHERE REGEXP_LIKE(NAME, '[eE][lL]')
     AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
;
 
 

REGEXP_LIKE(NAME, '[eE][lL]')

    - e or E +  l or L 과 일치하는 패턴 탐색

 

 

 

🔗 소스 코드
GitHub