1. or

select * from orders o where email like '%gmail.com' or email like '%naver.com' or email like '%daum.net';

 

2. Is null, Is not null

select * from users u left join point_users pu on pu.user_id = u.user_id where pu.point_user_id is NULL;

 

3. 시간 데이터

select enrolled_detail_id, seen_date, done_date, DATEDIFF(done_date , seen_date) 
from enrolleds_detail ed 
where done = true and seen = true and DATEDIFF(done_date , seen_date) > 0;

select enrolled_detail_id, seen_date, done_date, TIMESTAMPDIFF(MINUTE , seen_date, done_date) 
from enrolleds_detail ed 
where done = true and seen = true and TIMESTAMPDIFF(MINUTE , seen_date, done_date) > 0;

 

4. 시간 차이

select enrolled_detail_id , CURDATE(), done_date, datediff(CURDATE(), done_date) 
from enrolleds_detail ed 
where done = TRUE and seen = TRUE 
order by datediff(CURDATE(), done_date) desc;

select enrolled_detail_id , ADDDATE(CURDATE(), 100), done_date, datediff(CURDATE(), done_date) 
from enrolleds_detail ed
where done = TRUE and seen = TRUE ;

 

5. Group by, order by

select ed.enrolled_id, ed.week, count(*) 
from enrolleds_detail ed 
group by ed.enrolled_id, ed.week ;

select * from enrolleds_detail ed 
order by enrolled_id, week, current_order ;

 

6. SUBSTRING

select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users ;

select c.checkin_id, c.comment, SUBSTRING(c.comment, 3, 5) from checkins c

 

7. CASE

select order_no, payment_method, 
case payment_method when 'kakaopay' then '카카오페이' 
					when 'CARD' then '카드' 
                    else '기타' 
                    END as '결제수단' 
from orders;

select pu.point_user_id, pu.point, 
	case when pu.point > 10000 then '잘했어요!!' 
   		 else '분발하세요!' END as '구분' 
from point_users pu;

'스파르타코딩클럽 > 엑셀보다 쉬운 SQL 18기' 카테고리의 다른 글

수료증  (0) 2021.07.12
3주차. 퀴즈 정리  (0) 2021.06.26
2주차. 퀴즈 정리  (0) 2021.06.26
1주차. 퀴즈 정리  (0) 2021.06.14

+ Recent posts