문자 데이터 가공
REPLACE | 특정 문자를 다른 문자로 변경 | replace(Column, 현재 값, 바꿀 값) |
SUBSTRING | 특정 문자만 조회하기 | substr(Column, 시작 위치, 글자 수) |
CONCAT | 여러 컬럼의 문자 합치기 | concat(붙이고 싶은 값1, 붙이고 싶은 값2, ...) |
조건식 IF, CASE
IF | 조건을 지정해주는 기초 문법 | if(조건, 조건 충족할 때, 조건 충족하지 않을 때) |
CASE | 여러개의 조건을 지정 | case when 조건1 then 값1 when 조건2 then 값2 else 값3 end |
데이터 타입 오류 해결
- CAST : 데이터 타입 변환 함수
- cast Column as 데이터 타입
- 데이터 타입 : VARCHAR(CHAR) - 문자열형
DECIMAL - 숫자형(정수와 소수 부분 모두 나타냄)
INT - 정수형
DATE - 날짜 및 시간형
3주차 숙제
다음의 조건으로 배달시간이 늦었는지 판단하는 값을 만들어주세요.
- 주중 : 25분 이상
- 주말 : 30분 이상
CASE 문을 사용하여 각 조건에 해당할 경우 Late를 출력하고 그렇지 않은 경우 On-time을 출력하는 쿼리문을 작성했다.
select order_id, restaurant_name, day_of_the_week, delivery_time,
case when day_of_the_week='Weekday' and delivery_time>=25 then 'Late'
when day_of_the_week='Weekend' and delivery_time>=30 then 'Late'
else 'On-time' end "지연여부"
from food_orders
▼ 결과
조건을 작성할 때 주중or주말, 배달시간 두가지의 조건을 지정해야 해서 AND를 사용했는데
CASE문과 IF문을 결합하여 다음과 같은 쿼리문을 작성할 수도 있다.
select order_id, restaurant_name, day_of_the_week, delivery_time,
case when delivery_time>=if(day_of_the_week='Weekday', 25, 30) then 'Late'
else 'On-time' end "지연여부"
from food_orders
'스파르타 코딩클럽 > [강의] 엑셀보다 쉽고 빠른 SQL' 카테고리의 다른 글
[엑셀보다 쉽고 빠른 SQL] 5주차. Null값 처리와 심화 문법 (0) | 2023.12.26 |
---|---|
[엑셀보다 쉽고 빠른 SQL] 4주차. Subquery와 Join (0) | 2023.12.26 |
[엑셀보다 쉽고 빠른 SQL] 2주차. 연산과 정렬 (0) | 2023.12.26 |
[엑셀보다 쉽고 빠른 SQL] 1주차. SQL의 이해 (0) | 2023.12.26 |