티스토리 뷰

TIL

SQL문 - Join, Case when, Datetime

호호홍얍얍 2022. 8. 31. 17:10

Join

- inner join: 교집합

  • 예시: A, B 테이블에 모두 존재하는 데이터 중, A 테이블 기준 기간이 긴 데이터 찾기
SELECT *
from animal_ins A 
left join animal_outs B on A.animal_id=B.animal_id
where A.datetime > B.datetime
order by A.datetime

- outer join: 합집합

  • 예시: A, B 테이블 중 B 테이블에만 존재하는 데이터 찾기
SELECT B.animal_id, B.name
from animal_ins A right outer join animal_outs B on A.animal_id=B.animal_id
where A.animal_id is null

 

If / case when

- If: 특정 조건에 따라 분기

  • 예시: A인 경우에는 X, 아닌 경우에는 O로 표기하기
SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE 'Intact%', 'X', 'O') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

- Case When End: 특정 조건에 따라 분기

  • 예시: A인 경우에는 X, 아닌 경우에는 O로 표기하기
SELECT animal_id, name,
case when sex_upon_intake like 'intact%' then 'X'
else 'O'
end as '중성화'
from animal_ins

 

 

Datetime

- datediff: 두 날짜의 기간 일수로 비교하기

SELECT B.animal_id, B.name
from animal_outs B
join animal_ins A
on A.animal_id=B.animal_id
where B.animal_id is not null
order by datediff(A.datetime, B.datetime)
limit 2

 

- 날짜 포맷

SELECT animal_id, name, date_format(datetime, '%Y-%m-%d') as '날짜'
from animal_ins 
order by animal_id

 

'TIL' 카테고리의 다른 글

[오늘 한 것 & 배운 것]  (0) 2022.09.01
Wrapper 클래스  (0) 2022.09.01
[오늘 한 것 & 배운 것]  (0) 2022.08.26
[스프링 핵심 기본 원리] SOLID 원칙  (0) 2022.08.10
20220713  (0) 2022.07.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
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
글 보관함