SQL 문제 풀이(String, Date)
String, Date
- SQL 데이터 중 String, Date 타입을 처리하는 문제
Programmers에서문제를 하나씩 풀이하며 기초를 다져보자!!
1. 루시와 엘라 찾기
- 조건 절에 string인 경우 찾는 방법이다.
- 조건이 여러개일 경우 =가 아닌 in을 써준다.
- 풀이
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME in ('Lucy', 'Ella', 'Pickle', 'Sabrina', 'Mitty')
2. 이름에 el이 들어가는 동물 찾기
- 문자열에 포함 되는지 찾는 문제
- LIKE를 쓰면 java에서 contains() 와 같은 기능, 문자열을 포함하는지에 대해 찾는다.
- %를 쓸경우 해당 부분에 어떤 문자가 와도 상관이 없게 된다.
- 풀이
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
3. 중성화 여부 파악하기
- IF 문과 CASE WHEN 중 아무거나 사용해도 되는 문제
- 조건에 따른 결과값이 다르게 출력하기 위한 문제이다.
- IF(조건, 참일경우, 거짓일경우) 로 사용하면 된다.
- IF를 사용한 풀이
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
- CASE WHEN을 사용한 풀이
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
4. DATETIME에서 DATE로 형 변환
- DATETIME을 DATE로 변환해주는 문제
- DATE_FORMAT 함수를 알고 있다면 쉽지만 모른다면 어려울 문제
- Mysql 공식문서에서 좀 더 자세히 확인해 볼 수 있다.
- 풀이
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') as '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
-
REVIEW
DATE_FORMAT의 다양한 방법을 알아두자!
Leave a comment