Operatoren (MDX-Syntax)
In MDX (Multidimensional Expressions) können Sie mit Operatoren die folgenden Aktionen ausführen:
Ändern von Daten, temporär oder dauerhaft.
Suchen nach Werten oder Objekten, die mit einer angegebenen Bedingung übereinstimmen.
Implementieren einer Entscheidung zwischen Werten oder Ausdrücken.
Testen hinsichtlich bestimmter Bedingungen vor dem Beginn einer Transaktion oder dem Ausführen eines Commits für eine Transaktion bzw. vor dem Ausführen bestimmter Anweisungen.
MDX unterstützt die Operatoren, die in der folgenden Tabelle aufgelistet sind:
Art der auszuführenden Operation |
Operator |
---|---|
Zuweisen eines Werts zu einer Variablen oder Zuordnen einer Resultsetspalte zu einem Alias. |
|
Addition, Subtraktion, Multiplikation, Division. |
|
Testen, ob eine Bedingung wahr ist (z. B. AND, OR, NOT oder XOR). |
|
Vergleichen eines Werts mit einem anderen Wert oder einem Ausdruck. |
|
Dauerhaftes oder temporäres Kombinieren von zwei Zeichenfolgen zu einer Zeichenfolge. |
|
Dauerhaftes oder temporäres Kombinieren von zwei Mengenausdrücken zu einer Menge. |
|
Ausführen einer Operation für einen Operanden. |
Hinweis |
---|
In Abfragen kann jeder Benutzer Operationen ausführen, sofern die Daten in dem Cube, der mit einem Operator verwendet werden soll, für diesen Benutzer sichtbar sind. Sie benötigen allerdings die entsprechenden Berechtigungen, um die Daten erfolgreich ändern zu können. |
Wenn mehrere Operatoren verwendet werden, spielt die Reihenfolge eine Rolle, in der MDX die Operatoren auswertet. Darüber hinaus kann es für das Verwenden von Operatoren erforderlich sein, dass ein Datentyp in einen anderen Datentyp konvertiert wird, bevor die Operatoren ausgewertet werden können.
Auswerten von komplexen Ausdrücken
Sie können einen Ausdruck erstellen, indem Sie Operatoren dazu verwenden, mehrere kleinere Ausdrücke zu kombinieren. In solchen komplexen Ausdrücken wertet MDX die Operatoren in Abhängigkeit von der Definition der Operatorenrangfolge aus, die für MicrosoftSQL ServerAnalysis Services gilt. MDX führt Operatoren mit einer höheren Position in der Rangfolge vor Operatoren mit einer niedrigeren Position in der Rangfolge aus.
Grundlegendes zur Rangfolge von Operatoren
Die folgende Liste zeigt die Operatorenrangfolge (vom höchsten bis zum niedrigsten Operator). Operatoren, die in derselben Zeile stehen, sind in der Rangfolge gleichwertig und werden von links nach rechts ausgewertet, es sei denn, durch Klammern wird eine andere Reihenfolge erzwungen:
IS
AS
DISTINCT
:
^
/, *
+, -
EXISTING
<>, >=, =, <=, >, <
NOT
AND
XOR
OR
Weitere Informationen zu Operatoren in MDX finden Sie unter MDX-Operatorreferenz (MDX).
Bestimmen von Ergebnissen
Wenn Sie einfache Ausdrücke zu einem komplexen Ausdruck kombinieren, wird der Datentyp des sich ergebenden Werts bestimmt, indem die Regeln für die Operatoren mit den Regeln für die Rangfolge der Datentypen kombiniert werden.
Wenn das Ergebnis ein Zeichen- oder ein Unicode-Wert ist, wird die Sortierung des Ergebnisses bestimmt, indem die Regeln für die Operatoren mit den Regeln für die Sortierungsrangfolge kombiniert werden. Weitere Informationen zu Sortierungen finden Sie unter Sprachen und Sortierungen (Analysis Services - Mehrdimensionale Daten).
Es gibt auch Regeln, die die Genauigkeit, die Dezimalstellen und die Länge des Ergebnisses basierend auf der Genauigkeit, den Dezimalstellen und der Länge der einfachen Ausdrücke bestimmen.
Konvertieren von Datentypen
MDX konvertiert den Datentyp eines Objekts implizit in einen anderen Datentyp, wenn das Objekt in einem Ausdruck verwendet wird, der einen anderen Typ erfordert. In der folgenden Tabelle werden die Konvertierungsregeln für jedes Objekt aufgelistet.
Ursprünglicher Typ |
Benötigter Typ |
Konvertierung |
---|---|---|
Ebene |
Menge |
<Ebene>.members |
Hierarchie |
Element |
<Hierarchie>.defaultmember |
Element |
Tupel |
(<Element>) |
Tupel |
Element |
<Tupel>.item(0) |
Tupel |
Skalarer Typ |
<Tupel>.value |