ejemplos - nvl sql server ejemplo
ComprobaciĆ³n de SQL Server para IsNull y para cero (4)
Usas CASE
en lugar de
ISNULL(@VariableEqualToZero,1)
utilizar
CASE WHEN @VariableEqualToZero IS NULL OR @VariableEqualToZero = 0 THEN 1 ELSE @VariableEqualToZero END
COALESCE e ISNULL son básicamente solo accesos directos para una declaración CASE. Puede consultar la ayuda para obtener la sintaxis de CASE.
Tengo lo siguiente:
set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1
Si @VariableEqualToZero es nulo, sustituye el 1. Lo necesito para sustituir 1 si @VariableEqualToZero = 0 también. ¿Cómo hago esto?
set @SomeVariable = @AnotherVariable /
(case when isnull(@VariableEqualToZero, 0) = 0 then 1 else
@VariableEqualToZero end) - 1
Si está usando SQL Server, probablemente pueda usar una declaración nullif? (es decir, establezca el valor en nulo si es 0 y luego configúrelo en 1 si es nulo; debería capturar tanto los 0 como los 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