문제

나는 다음과 같습니다.

set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1 

@variableequaltozero가 null이면 1을 대체합니다. 어떻게해야합니까?

도움이 되었습니까?

해결책

SET @SomeVariable = @AnotherVariable / COALESCE(
        CASE 
             WHEN @VariableEqualToZero = 0 THEN 1
             ELSE @VariableEqualToZero
        END, 1) - 1

다른 팁

SQL Server를 사용하는 경우 Nullif 문을 사용할 수 있습니까? (즉, 0 인 경우 값을 NULL로 설정 한 다음 NULL 인 경우 1로 설정합니다. 0과 NULLS를 모두 잡아야합니다.

SET @SomeVariable = @AnotherVariable/ISNULL(NULLIF(@VariableEqualToZero,0),1) - 1
set @SomeVariable = @AnotherVariable /
(case when isnull(@VariableEqualToZero, 0) = 0 then 1 else
@VariableEqualToZero end) - 1

당신은 케이스를 사용합니다

대신에

ISNULL(@VariableEqualToZero,1)

사용

CASE WHEN @VariableEqualToZero IS NULL OR @VariableEqualToZero = 0 THEN 1 ELSE @VariableEqualToZero END

Coalesce와 Isnull은 본질적으로 사례 명세서의 바로 가기입니다. 사례 구문에 대한 도움을 참조하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top