J'ai ce qui suit:
set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1
Si @VariableEqualToZero est nul, il remplace le 1. J'en ai besoin pour substituer 1 si @VariableEqualToZero = 0 aussi. Comment puis-je faire cela?
SET @SomeVariable = @AnotherVariable / COALESCE( CASE WHEN @VariableEqualToZero = 0 THEN 1 ELSE @VariableEqualToZero END, 1) - 1
Si vous utilisez SQL Server, vous pouvez probablement utiliser une instruction nullif? (c'est-à-dire définir la valeur à null si elle est 0, puis la définir à 1 si elle est nulle – devrait être utilisée pour les 0 et les valeurs 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
Vous utilisez CASE
au lieu de
ISNULL(@VariableEqualToZero,1)
utilisation
CASE WHEN @VariableEqualToZero IS NULL OR @VariableEqualToZero = 0 THEN 1 ELSE @VariableEqualToZero END
COALESCE et ISNULL sont essentiellement des raccourcis pour une instruction CASE. Vous pouvez consulter l'aide pour la syntaxe de CASE.