SQL Server prüfen IsNull und Zero
-
06-09-2019 - |
Frage
Ich habe folgende Möglichkeiten:
set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1
Wenn @VariableEqualToZero null ist es die 1. Stellvertreter Ich brauche es 1 zu ersetzen, wenn @VariableEqualToZero = 0 als auch. Wie mache ich das?
Lösung
SET @SomeVariable = @AnotherVariable / COALESCE(
CASE
WHEN @VariableEqualToZero = 0 THEN 1
ELSE @VariableEqualToZero
END, 1) - 1
Andere Tipps
Wenn Sie SQL Server verwenden, können Sie wahrscheinlich eine nullif Anweisung verwenden? (Das heißt den Wert auf Null gesetzt, wenn es dann 0 auf 1 gesetzt, wenn es null ist - sollte für beide 0'en und NULLs fängt
SET @SomeVariable = @AnotherVariable/ISNULL(NULLIF(@VariableEqualToZero,0),1) - 1
set @SomeVariable = @AnotherVariable /
(case when isnull(@VariableEqualToZero, 0) = 0 then 1 else
@VariableEqualToZero end) - 1
Sie verwenden CASE
statt
ISNULL(@VariableEqualToZero,1)
Verwendung
CASE WHEN @VariableEqualToZero IS NULL OR @VariableEqualToZero = 0 THEN 1 ELSE @VariableEqualToZero END
COALESCE und ISNULL sind im Wesentlichen nur Abkürzungen für eine CASE-Anweisung. Sie können die Hilfe für die Syntax von CASE konsultieren.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow