일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 요시
- 스파르타코딩클럽 #사전캠프
- 메모리구조
- 스터디카페
- Interface
- Java
- til #데이터베이스 #sql
- 내일배움캠프
- 레퍼클래스
- validation
- Framework
- 스파르타코딩클럽
- 사전캠프
- jvm
- optional
- Til
- 프레임워크
- 깃
- 깃헙
- 캡슐화
- 피드백
- 스파르타코딩클럽 #개발자 #백엔드
- 키오스크
- springboot
- Spring
- 함바그
- static
- 자바
- 스파르타사전캠프
- 스프링부트
- Today
- Total
John's Code Journey
[TIL] sql 강의 3주차 수강 완료 본문
1. SQL로 가공하기 (REPLACE, SUBSTRING, CONCAT)
replace 함수는 문자열 내에서 특정 부분을 다른 문자열로 교체할 때 사용됩니다.
REPLACE(string, substring, replacement)
string : 대상 문자열
substring (substr) : 교체할 부분 문자열
replacement : 교체할 새로운 문자열
ex)
SELECT REPLACE('Hello World', 'World', 'SQL');
substring 함수는 문자열의 일부를 추출할 때 사용됩니다. 시작 위치와 길이를 지정하여 문자열의 일부를 잘라냅니다.
SUBSTRING(string, start_position, length)
string: 대상 문자열
start_position: 추출을 시작할 위치 (1부터 시작)
length: 추출할 길이 (옵션, 생략하면 끝까지 추출)
ex)
SELECT SUBSTRING('Hello World', 7, 5);
concat 함수는 여러 개의 문자열을 하나로 합칠 때 사용됩니다.
CONCAT(string1, string2, ...)
ec)
SELECT CONCAT('Hello', ' ', 'World');
2. 조건에 따라 포맷을 다르게 변경해야한다면 (IF, CASE)
IF 함수는 조건에 따라 결과를 반환하는 함수로, IF 함수는 단일 조건을 평가하여 결과를 반환하는 간단한 형태입니다.
IF(condition, true_result, false_result)
condition: 평가할 조건
true_result: 조건이 참일 때 반환할 값
false_result: 조건이 거짓일 때 반환할 값
ex)
SELECT order_id,
delivery_time,
IF(delivery_time > 30, 'Late', 'On-time') AS delivery_status
FROM food_orders;
만약 delivery_time이 30분 이상이면 "Late"를 반환하고, 그렇지 않으면 "On-time"을 반환합니다.
IF 함수는 단일 조건을 처리할 때 유용합니다.
ELSE를 사용하지 않고 두 가지 결과를 반환합니다.
CASE 문은 여러 조건을 평가하고, 그 조건에 맞는 값을 반환하는 기능을 가진 문법입니다.
SQL에서 조건문을 사용할 때 IF보다 더 복잡한 조건을 처리할 수 있습니다.
CASE는 검색 CASE와 단순 CASE 두 가지 형태가 있습니다.
단순 CASE 문은 특정 표현식을 평가하여, 그 값에 따라 다른 값을 반환하는 방식입니다.
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
검색 CASE 문은 여러 조건을 평가하여 결과를 반환하는 방식으로,
여러 WHEN 절에 다양한 조건을 사용할 수 있습니다. 이 방식은 복잡한 조건을 다룰 때 매우 유용합니다.
ex)
SELECT order_id,
delivery_time,
CASE
WHEN delivery_time > 30 THEN 'Late'
WHEN delivery_time BETWEEN 20 AND 30 THEN 'Slightly late'
ELSE 'On-time'
END AS delivery_status
FROM food_orders;
delivery_time이 30분 초과일 경우 'Late'를 반환하고,
20분에서 30분 사이이면 'Slightly late'를 반환,
그 외의 경우에는 'On-time'을 반환합니다.
숙제
다음 조건으로 배달시간이 늦었는지 판단하는 값을 만들어주세요.
주중: 25분 이상
주말: 30분 이상
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 AS "지연여부"
FROM food_orders;
'Today I Learned > 스파르타 사전캠프' 카테고리의 다른 글
[TIL] JAVA, Spring 알아보기 (0) | 2025.02.10 |
---|---|
[TIL] sql 강의 1주차 2주차 수강 완료 (0) | 2025.02.06 |
[TIL] SQL 집계함수 (0) | 2025.02.05 |
[TIL] SQL 기초 (0) | 2025.02.04 |
Spring 트랙 6기 스타터 노트 (2) | 2025.02.03 |