📖TIL(Today I Learned)

TIL 4일 차 [IF 와 CASE 문 사용하기]

highcat 2024. 11. 8. 19:20
강의를 듣다가도 이해하려고 멈춰 있다보니
점점 다른 문제도 눈에 들어와 이것 저것 찾아보는 시간이 많아지고
어제 3주 차 강의를 미리 한 번 시청한 뒤, 오늘 복습할 겸 TIL 작성을 시작한다.






조건에 따라 다른 방법을 적용하고 싶을 때 - If 문 기초

 

 

if 절 이후, 괄호 안에 총 3가지 (조건 / 참 / 거짓 )를 넣어야하는데 엑셀과 유사하다.

 

 

음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Korean’ 이 아닌 경우에는 ‘기타’ 라고 지정

 

 

 

혹시 '기타'에 if를 하나 더 추가해서 japanese를 일식으로 가능한지 궁금해서 시도해보았다.

                                                                                                 *괄호를 뒤에 하나 더 붙여야 함

 

                                                                                                                     *일식이 추가 되었다!


 

 

‘문곡리’ 가 평택에만 해당될 때, 평택 ‘문곡리’ 만 ‘문가리’ 로 수정

select에는 addr(주소) 전체를 선택했기 때문에, where 절로 like %문곡리% 를 지정해줘야 문곡리 데이터만 뜸

 


 

 

잘못된 이메일 주소 (gmail) 만 수정을 해서 사용

전 날  substring 절 예시를 사용할 때 Gmail의 아이디는 10번째 글자m부터 시작이라, 위의 방법으로 수정된 예시이다.


 

 

 

조건을 여러가지 지정하고 싶을 때 - Case 문 기초

 

  • case 문을 이용하면 여러번의 if 문을 적용 한 효과를 낼 수 있다.

when ~ than = 조건 값 / else = 그 외 값 / end = case 절 끝내기

 

 

 

음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Japanese’ 혹은 ‘Chienese’ 일 때는 ‘아시아’, 그 외에는 ‘기타’ 라고 지정

in = 포함

 


 

음식 단가를 주문 수량이 1일 때는 음식 가격, 주문 수량이 2개 이상일 때는 음식가격/주문수량 으로 지정

 

 

(주문 수)quantity>=2 2 보다 quantity 가 크거나 같다.

 

* esle 를 쓰지 않은 이유 : '부합하지 않는 조건'이 필요 없을 땐 생략해도 됨

 


 

SQL로 간단한 User Segmentation 해보기

 

10세 이상, 30세 미만의 고객의 나이와 성별로 그룹 나누기 (이름도 같이 출력)

 

 

 


 

 

─음식 단가, 음식 종류 별로 음식점 그룹 나누기─

Korean = 한식
Japanese, Chinese, Thai, Vietnamese, Indian = 아시아식
그외 = 기타

가격 = 5000, 15000, 그 이상

 

when / and / then 순으로 하나씩 나눴음

 


 

 

 

조건문으로 서로 다른 식을 적용한 수수료 구해보기
─지역과 배달시간을 기반으로 배달수수료 구하기 (식당 이름, 주문 번호 함께 출력)─

지역 : 서울
기타 - 서울일 때는 수수료 계산 * 1.1
* 기타일 때는 곱하는 값 없음

시간 : 25분, 30분
- 25분 초과하면 음식 가격의 5%
- 30분 초과하면 음식 가격의 10%

ex) 짜장면 1만원 x 31분(0.1) x 서울(1.1) = 1만2000원

"25분 초과하면 5%인데, 30분 초과랑 겹쳐서 = 15%가 되는 건 아니냐?"

하지만 30분 초과를 먼저 썼기 때문에 30분 초과는 걸러지고 나머지(25분 초과~30분까지)가 자동으로 출력 된다.

 

그리고 곱하기(*) if 로 case 안에 if문 사용 가능

 


 

 

─주문 시기와 음식 수를 기반으로 배달할증료 구하기─

주문 시기 : 평일 기본료 = 3000 / 주말 기본료 = 3500
음식 수 : 3개 이하이면 할증 없음 / 3개 초과이면 기본료 * 1.2

ex) 기본료 3000원 x 초과 비용(1.2) = 3600원

 

평일 weekday / 주말 weekend / 주문 수 quantity

 


 

 

처음에 if 가 들어가는 줄 알았는데 전혀 필요 없었다.
결과는 같게 나왔지만 정답 해석은 좀 달랐다..

 

정답▼

더 깔끔하게 else 를 사용해 '그 외 것'을 지정해줘도 되는 거였다..

 

 

 

 


 

 

이번 3주 차는 2번 복습해서 이제 이해할 수 있었다.
4주 차도 아마 2회 독해야 되지 않을까 싶다..