본문 바로가기
🛠️Skill/CodingTest

[프로그래머스] Lv2. 이름에 el 들어가는 동물 찾기 / 중복 제거 / NULL 처리 / DATETIME에서 DATE로 형 변환 / 중성화 여부 파악하기

by Istj_eff 2022. 10. 27.

1. 이름에 el이 들어가는 동물 찾기 - LIKE

https://school.programmers.co.kr/learn/courses/30/lessons/59047

정답 코드

SELECT ANIMAL_ID, NAME
FROM animal_ins
WHERE name LIKE '%el%' AND animal_type = 'Dog'
ORDER BY name

Like 설명

💡
SELECT 컬럼이름1, 컬럼이름2
FROM 테이블 이름
WHERE 컬럼이름 LIKE 패턴 ;
a% ‘a’로 시작
%a ‘a’로 끝남
%To ‘To’가 포함됨
_t% 두번째 글자가 ‘t’임
a_%_% ‘a’로 시작하고 글자수가 3개 이상
T%a ‘T’로 시작하고 ‘a’로 끝남

 

✅LIKE 예제

# '%A%' 가장 많이 쓰임
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE '%SOFTBANK%' ; -- NAME컬럼에 SOFTBANK가 들어있는 데이터 가져와

# '%A'
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE '%A' ; -- A로 끝나는 데이터 가져와

SELECT *
FROM STOCK_INFO
WHERE NAME LIKE '_M%' ; -- 두번째 글짜가 M인 데이터 가져와

SELECT *
FROM STOCK_INFO
WHERE NAME LIKE 'A_%_%' ; -- A로 시작하면서 글자가 3개 이상인 데이터

SELECT *
FROM STOCK_INFO
WHERE NAME LIKE 'T%A' ; -- T로 시작하고 A로 끝나는 데이터

2. 중복제거하기 - DISTINCT

https://school.programmers.co.kr/learn/courses/30/lessons/59408

SELECT COUNT(DISTINCT name) count
FROM animal_ins
WHERE name IS NOT NULL

 


3. NULL 처리하기 - IFNULL

SELECT animal_type, IFNULL(name,'No name'), sex_upon_intake
FROM animal_ins

 

 

 


4. DATETIME에서 DATE로 형 변환 - DATE_FORMAT

SELECT animal_id, name, DATE_FORMAT(datetime, '%Y-%m-%d') '날짜'
FROM animal_ins
ORDER BY animal_id

 

 


5. 중성화 여부 파악하기 - CASE WHEN / IF

https://school.programmers.co.kr/learn/courses/30/lessons/59409

 

# [1]
SELECT ANIMAL_ID, NAME,
    CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' THEN 'O'
    WHEN SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
    ELSE 'X' END AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
# [2]
SELECT ANIMAL_ID, NAME,
	IF(SEX_UPON_INTAKE LIKE '%NEUTERED%' 
    		OR SEX_UPON_INTAKE LIKE '%SPAYED%','O','X') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC

댓글