質問

私は以下の持ってます:

set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1 
@VariableEqualToZeroがnullの場合は、

それは私が@VariableEqualToZero = 0ならば、それは同様に1を代入する必要がある1を代入します。私はこれをどのように行うのですか?

役に立ちましたか?

解決

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

他のヒント

SQL Serverを使用している場合は、

、あなたはおそらくNULLIFステートメントを使用することができますか? (すなわち、それはヌルだ場合には0を1に設定するかどうnullに値を設定 - 両方の0とNULLをキャッチするべきである

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

あなたはCASEを使用する

の代わりに

ISNULL(@VariableEqualToZero,1)

使用

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

COALESCEとISNULLは、本質的にCASE文の単なるショートカットです。 あなたはCASEの構文のヘルプを参照してくださいすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top