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:
Der Durchsucht:
Gibt 'when/then'-Ausdrücke (wenn/dann) eingegeben werden. Diese werden von links nach rechts ausgewertet. Weitere Informationen finden Sie unten. Beispiel:
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:
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:
Wenn ein Ausdruck leere Werte (Nullwerte) enthält, können Sie die |
Is Null
| Wird in einer Beispiel:
Wenn ein Ausdruck leere Werte (Nullwerte) enthält, können Sie die |
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:
| Col1 |
| 1 |
| 2 |
| 3 |
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):
| Col1 | if(Col1 < 2, Max(Col1), Max(Col1))
|
| 1 | 1 |
| 2 | 3 |
| 3 | 3 |
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:
| Col2 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
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:
| Col2 | if (Col2 < 4, 0,
Percentile(Col2, 70))
| if (Col2 < 6,
0, Percentile(Col2, 70))
|
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 0 | 0 |
| 4 | 8,2 | 0 |
| 5 | 8,2 | 0 |
| 6 | 8,2 | 8,8 |
| 7 | 8,2 | 8,8 |
| 8 | 8,2 | 8,8 |
| 9 | 8,2 | 8,8 |
| 10 | 8,2 | 8,8 |
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:
| Col1 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
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])
endCase Max:
case
when [Col1] < Avg([Col1]) then Max([Col1])
when [Col1] < (Avg([Col1]) + 1) then Max([Col1])
else Max([Col1])
endDas Ergebnis lautet wie folgt:
| Col1 | Case Min | Case Max |
| 1 | 1 | 4 |
| 2 | 1 | 4 |
| 3 | 1 | 4 |
| 4 | 1 | 4 |
| 5 | 5 | 5 |
| 6 | 6 | 8 |
| 7 | 6 | 8 |
| 8 | 6 | 8 |