저장된 데이터를 조건에 따라 변형 및 추출하기 위해 사용
✔️ DB에 저장된 값이 수정되는 것은 아니다
CASE
조건문SELECT
*,
CASE
WHEN (조건을 줄 컬럼명) [조건] THEN (조건 값) -- when then 조건문은 항상 같이 쓰여야 함
ELSE (조건 값) -- when then을 충족하지 않을 때의 값
END (별칭) -- 조건문 결과값
FROM
(테이블명);
♟️ CASE 문 뒤에 WHEN-THEN은 항상 같이 쓰여야 한다!
♟️ 비교연산자를 WHEN-THEN 조건에 모두 사용할 수 있다
♟️ ELSE를 반드시 써줘야 하는 것은 아니다! (문법적으로 반드시 필요한 것은 아님)
➡️ 이 경우 ELSE에 해당하는 값이 전부 NULL을 출력하기 때문에 의도한 것이 아니라면 써주기!
SELECT
*,
CASE
WHEN (조건을 줄 컬럼명) [조건] THEN (조건 값)
WHEN (조건을 줄 컬럼명) [조건] THEN (조건 값)
ELSE (조건 값)
END (별칭)
FROM
(테이블명);
😀 WHEN-THEN 조건이 필요한 만큼 두 번, 세 번 사용하면 된다!
♟️ CASE문의 특성상 가장 위에 있는 조건부터 데이터에 적용을 한다 (이미 적용된 값들을 빼고 다음 조건문을 실행한다) 중복 필터링을 하지 않는다!
CASE
와 GROUP BY
함께 사용하기SELECT
CASE
WHEN (조건문 걸 컬럼) [비교연산자] (값) THEN (결과)
ELSE (나머지 결과)
END AS (조건문 컬럼 별칭),
(다른 컬럼명)
FROM
(테이블)
GROUP BY
(조건문 컬럼 별칭)
😀 위와 같이 CASE문의 결과값을 GROUP BY 함수의 기준으로 넣어서 사용이 가능하다
IF()
함수 조건문
IF('조건', '조건이 참일 때 반환하는 값', '조건이 거짓일 때 반환하는 값')
CASE문과 매우 비슷!
→ 주로 값을 나누는 조건이 하나일 때 사용한다
😀 조건이 여러개라면 그냥 CASE를 쓰는 것이 나음!