DB/Oracle

DB 31강. CASE WHEN

JJJAEOoni 2022. 2. 10. 16:21
반응형

decode( )는 조건문의 조건식에

부등호 사용이 안되지만

case when을 사용하면

부등호 사용이 가능하다.

if-else와 같은 것이다.

 

case when은 모든 sql이 다 가지고 있기 때문에

decode를 모르고

case when만 알고 있어도 괜찮다!

 

-- student 테이블에서 비만인 그룹의 몸무게 평균과 마른 그룹의 몸무게 평균을 구하시오
-- 60kg 이상 (비만), 60kg 미만(마른)
SELECT round(avg(weight), 2) 평균, decode(g1, 1, '비만', '마른') 비만도
FROM (
    SELECT name, weight, floor(weight/60) g1
    FROM student
    ORDER BY weight
)
GROUP BY g1;

 

-- CASE WHEN으로 다시 풀어보기
SELECT round(avg(weight), 2) 평균, 비만도
FROM (
    SELECT name, weight, case when weight >= 60 then '비만'
                            else '마름' end 비만도
    FROM student
    ORDER BY weight
)
GROUP BY 비만도;

 

데이터베이스에는 메서드가 매우 많으니

큰 틀을 알고 가야 한다.

 

MSSQL(고급 함수 많이 들고 있음)

오라클(고급 함수 많이 들고 있음)

 

고급 함수 

 

: 계층 쿼리(부모 찾기),

파티션,

통계 함수,

순위 함수 등등

 

MySQL(오픈 진형 - 공짜)

-5.7 버전일 때 오라클이 인수

---> 이후 6.0 ~ 8.0(현재 가장 많이 씀)

오라클의 고급 함수가

MySQL에 흡수되며 유료로 바뀜

 

MariaDB(오픈 진형 - 공짜)

MySQL이 5.7 버전일 때

인수당할 시기에

MySQL의 개발자가 나와

새로 만든 DB

 

MySQL 5.7과 똑같음

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

 

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형