IsNullのためとゼロのためのSQL Serverのチェック
-
06-09-2019 - |
質問
私は以下の持ってます:
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の構文のヘルプを参照してくださいすることができます。
所属していません StackOverflow