私は次のものを持っています:
set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1
@VariableEqualToZero が null の場合は 1 に置き換えられます。@VariableEqualToZero = 0 の場合も 1 に置き換える必要があります。どうすればいいですか?
私は次のものを持っています:
set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1
@VariableEqualToZero が null の場合は 1 に置き換えられます。@VariableEqualToZero = 0 の場合も 1 に置き換える必要があります。どうすればいいですか?
SQL Server を使用している場合、おそらくNULLIF
ステートメントを使用できますか?
つまり、値を次NULL
の場合に0
設定し、次に次の1
場合に設定しますNULL
- 0 と NULL の両方をキャッチする必要があります。
SET @SomeVariable = @AnotherVariable/ISNULL(NULLIF(@VariableEqualToZero,0),1) - 1
SET @SomeVariable = @AnotherVariable / COALESCE(
CASE
WHEN @VariableEqualToZero = 0 THEN 1
ELSE @VariableEqualToZero
END, 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 の構文については、ヘルプを参照してください。