Logische Funktionen
Die unten abgebildete Liste zeigt die logischen Funktionen, die in Ausdrücken verwendet werden können.
Funktion | Beschreibung |
---|---|
Case | Die 'Case'-Anweisung hat zwei verschiedene Formen. Einfach: case Arg1 when Arg2 then Arg3 else Arg4 end Der Arg1-Ausdruck wird ausgewertet, und wenn Arg1 gleich Arg2 ist, wird Arg3 zurückgegeben. Es können mehrere 'when/then'-Ausdrücke (wenn/dann) eingegeben werden. Diese werden von links nach rechts ausgewertet. Durchsucht: case when Arg1 then Arg2 else Arg3 end Gibt Arg2 zurück, wenn Arg1=true , und Arg3, wenn Arg1=false. Es können mehrere 'when/then'-Ausdrücke (wenn/dann) eingegeben werden. Diese werden von links nach rechts ausgewertet. Weitere Informationen finden Sie unten. Beispiel: case when 1 < 2 then "a" when 1 < 3 then "b" else "c" end case [Column] when 3 then "a" when 2 then "b" else "c" end Weitere Beispiele finden Sie unten und Berechnete Spalten auf Basis von Bedingungen. |
If(Arg1,Arg2,Arg3) | Gibt Arg2 zurück, wenn Arg1=true, und Arg3 wenn Arg1=false. Arg1 ist ein boolescher Wert und in der Regel das Ergebnis eines Vergleichs. Arg2 und Arg3 können von jedem beliebigen Typ sein, müssen aber beide denselben Typ aufweisen oder null sein. Die Argumente 2 und 3 verarbeiten nur Teilmengen der Zeilen. Dies wirkt sich auf alle spaltenbasierten und akkumulierenden Methoden aus. Weitere Informationen finden Sie unten. Beispiele: If([Count] > 3, "many", "few") If(true, null, null) -> (Leer) If(true, 1, null) -> 1 If(false, null, 2) -> 2 If(null, 1, 2) -> (Leer) If(1 < 2, "Small", "Big")-> Small If([Column] Is Null,"0","has value") Weitere Beispiele finden Sie unten und Berechnete Spalten auf Basis von Bedingungen. |
Is Not Null | Wird in einer If- oder Case-Anweisung verwendet, um zu bestimmen, ob ein Ausdruck einen leeren Wert (Nullwert) ergibt. Beispiel: If([Column] Is Not Null, "value was not null", "value was null") Wenn ein Ausdruck leere Werte (Nullwerte) enthält, können Sie die SN-Funktion verwenden (siehe Konvertierungsfunktionen), um die Nullwerte durch den angegebenen Wert zu ersetzen. |
Is Null |
Wird in einer If- oder Case-Anweisung verwendet, um zu bestimmen, ob ein Ausdruck einen leeren Wert (Nullwert) ergibt. Beispiel: If([Column] Is Null, "value was null", "value was not null") Wenn ein Ausdruck leere Werte (Nullwerte) enthält, können Sie die SN-Funktion verwenden (siehe Konvertierungsfunktionen), um die Nullwerte durch den angegebenen Wert zu ersetzen. |
Weitere Hinweise zur Verwendung von "if" in Ausdrücken:
Wenn Sie eine "if"-Anweisung in einem Ausdruck verwenden, schränkt die Bedingung im ersten Argument die im dritten Argument auszuwertenden Werte ein. Betrachten wir zum besseren Verständnis nun ein einfaches Beispiel mit einer Ganzzahl-Spalte:
Fügen Sie mithilfe des folgenden Ausdrucks eine berechnete Spalte ein:
if(Col1 < 2, Max(Col1), Max(Col1))
Dadurch entsteht eine neue Spalte mit zwei verschiedenen Werten. Der erste Wert entspricht dem Maximum für alle Werte kleiner als 2, und der zweite Wert entspricht dem Maximum für die restlichen Werte (und damit auch dem Maximum für die gesamte Spalte):
Die If-Funktion teilt die Spalte in zwei Gruppen auf und fährt anschließend mit der Auswertung des Ausdrucks über die neuen Gruppen fort.
Wenn Sie stattdessen einen Percentile-Ausdruck verwenden, erhalten Sie für denselben Perzentil-Ausdruck unterschiedliche Ergebnisse, je nachdem, wie die erste Bedingung die Spalte aufgeteilt hat:
Fügen Sie mithilfe der folgenden Ausdrücke zwei Spalten ein:
if (Col2 < 4, 0, Percentile(Col2, 70))
if (Col2 < 6, 0, Percentile(Col2, 70))
Sie erhalten das folgende Ergebnis:
Sie sehen also, dass sich der Perzentil-Wert ändert, je nachdem, wie die If-Funktion die Daten gruppiert hat.Weitere Hinweise zur Verwendung von "case" in Ausdrücken:
Im Fall von "case"-Ausdrücken wird die Bedingung nach dem "when" auf die gesamte Spalte berechnet. Das Argument nach "then" wird über die Zeilen berechnet, die in der "when"-Bedingung definiert sind. Wenn der Ausdruck mehrere "when- then"-Paare enthält, wird jedes "then" von allen vorangehenden Bedingungen sowie von der letzten Bedingung eingegrenzt.
Ein Beispiel mit einer einfachen Ganzzahl-Spalte:
Fügen Sie mithilfe der folgenden Ausdrücke zwei berechnete Spalten namens Case Min und Case Max hinzu:
Case Min:
case when [Col1]<Avg([Col1]) then Min([Col1]) when [Col1]<(Avg([Col1]) + 1) then Min([Col1]) else Min([Col1]) end
Case Max:
case when [Col1] < Avg([Col1]) then Max([Col1]) when [Col1] < (Avg([Col1]) + 1) then Max([Col1]) else Max([Col1]) end
Das Ergebnis lautet wie folgt: