by 신제트 [MySQL] [2023.04.04 15:23:16]
if case~when 같이 사용할수가있나요?
ex)
select sum(case state when 3 then f1 end) + sum(case state when 3 then f2 end) from t1 이 있다고 한다면
저 두개의 값은 state=3 인것중 f1과 f2 의 합을 가져옵니다
한문장으로 if(state=3) 이렇게 조건을 걸고 하는 방법이있나요? 없다면 다른방법이 있는지 궁금합니다
CASE WHEN STATE = 3 THEN NVL(F1,0) + NVL(F2,0) END
형태면 원하시는 값이 도출 될거 같은데요
위 쿼리가 전체 쿼리인가요? 일부분만 발췌한 것일까요? 만약 전체 쿼리라면? WHERE 절 사용이 맞습니다.
SELECT
SUM
(f1) +
(f2)
,
(f1 + f2)
FROM
t1
WHERE
state = 3
;
일부분만 발췌한것입니다 state가 2인것도 있고 다른 조건을 타는것도있습니다.