다른 테이블 main
, 열 Days_At_Step
의 값에 따라 Plan_Status
열을 업데이트하려고합니다.
다음 문은 작동하지만, 이것을 어떻게 조건문으로 구성 할 수 있습니까?
아니면 사용할 수있는 또 다른 전략이 있습니까?JOIN이있는 조건부 UPDATE 문
다른 WHERE 조건을 가진 3 개의 동일한 명령문을 사용하는 것보다 나은 방법이 있다고 생각합니다.
UPDATE controlState
SET Plan_Status=1
FROM controlState JOIN main ON main.Cscc = controlState.Cscc
WHERE Days_At_Step < 2;
UPDATE controlState
SET Plan_Status=2
FROM controlState JOIN main ON main.Cscc = controlState.Cscc
WHERE (Days_At_Step >= 2 OR Days_At_Step < 4);
UPDATE controlState
SET Plan_Status=3
FROM controlState JOIN main ON main.Cscc = controlState.Cscc
WHERE Days_At_Step > 4;