https://programmers.co.kr/learn/courses/30/lessons/59047
1. 서론
문제를 자세히 읽어야 하는 문제. 대충 읽다가 조건을 놓침 ㅎ
2. 문제 풀이
ANIMAL_INS: 동물 보호소에 들어온 동물의 정보를 담은 테이블
테이블 구조
ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE
(각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부)
Q. 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다.
내가 간과했던 점은 개의 아이디, 즉 animal_type이 개여야 한다는 점이다. 문제의 이름에만 정신 팔려서 el에만 집착하다 보니...
조건은 animal_type이 개고, 이름에 el이라는 알파벳이 들어가며 이름순으로 정렬해야 한다는 것.
like를 이용해서 쉽게 풀 수 있는데 like '% el%'이라고 지정해주면 el의 앞과 뒷부분엔 무슨 알파벳이든 올 수 있고 el이 있는 경우만 포함해서 검색해준다.
3. 코드 설명
SELECT animal_id, name
FROM animal_ins
WHERE upper(name) LIKE '%EL%' and animal_type ='Dog'
ORDER BY name;
like를 이용해 el이 들어가는 이름을 찾아준다. 이 때 대소문자의 구분이 없어야 하므로 값을 검색할 때 대문자 혹은 소문자로 고정을 해준다. 나 같은 경우에는 대문자이건 소문자이건 관계없이 대문자로 이름의 알파벳들을 바꿔주고 검색했다. (MySQL에서는 그냥 되는데 오라클은 안됨 ㅎ)
개의 아이디이기 때문에 animal_type를 dog로 고정해준다.
그리고 이름순으로 조회해주기.
'SQL' 카테고리의 다른 글
[ORACLE] 프로그래머스 오랜 기간 보호한 동물(2) (+MySQL) (0) | 2021.05.27 |
---|---|
[ORACLE] 프로그래머스 중성화 여부 파악하기 (0) | 2021.05.27 |
[ORACLE] 프로그래머스 루시와 엘라 찾기 (0) | 2021.05.27 |
[SQLD] 과목 1. 데이터 모델링의 이해 2) 데이터 모델과 성능 (0) | 2021.03.18 |
[ORACLE] 프로그래머스 DATETIME에서 DATE로 형 변환 (+MySQL) (0) | 2021.03.14 |