In tabellarischen Modellen unterstützte Datentypen

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

In diesem Artikel werden die Datentypen erläutert, die in tabellarischen Modellen verwendet werden können, und die implizite Konvertierung von Datentypen bei der Berechnung oder Verwendung von Daten in einer Data Analysis Expressions (DAX)-Formel beschrieben.

In tabellarischen Modellen verwendete Datentypen

Wenn Sie Daten importieren oder einen Wert in einer Formel verwenden, werden die Daten in einen der folgenden Datentypen konvertiert, auch wenn die ursprüngliche Datenquelle einen anderen Datentyp enthält. Werte, die sich aus Formeln ergeben, verwenden ebenfalls diese Datentypen.

Im Allgemeinen werden diese Datentypen implementiert, um genaue Berechnungen in berechneten Spalten zu ermöglichen. Die gleichen Einschränkungen gelten aus Konsistenzgründen auch für den Rest der Daten in Modellen.

Formate für Zahlen, Währungen, Datumsangaben und Uhrzeiten sollten dem Format des Gebietsschemas auf dem Client folgen, der für die Arbeit mit den Modelldaten verwendet wird. Sie können die Formatierungsoptionen im Modell verwenden, um die Darstellung des Werts zu bestimmen.

Datentyp im Modell Datentyp in DAX BESCHREIBUNG
Ganze Zahl Ein ganzzahliger 64-Bit (acht Byte)-Wert*

Hinweis:
DAX-Formeln unterstützen keine Datentypen, die zu klein für den kleinsten in der Beschreibung aufgeführten Wert sind.
Zahlen ohne Dezimalstellen. Ganze Zahlen können positive oder negative Zahlen sein, müssen aber ganze Zahlen zwischen -9.223.372.036.854.775.807 (-2^63+1) und 9.223.372.036.854.775.806 (2^63-2) sein.
Decimal Number Eine reelle 64-Bit (acht Byte)-Zahl*

Hinweis:
DAX-Formeln unterstützen keine Datentypen, die zu klein für den kleinsten in der Beschreibung aufgeführten Wert sind.
Reelle Zahlen sind Zahlen, die Dezimalstellen aufweisen können. Reelle Zahlen decken viele Werte ab:

Negative Werte von -1,79E +308 bis -2,23E -308

Zero

Positive Werte von 2,23E -308 bis -1,79E +308

Die Anzahl der relevanten Stellen wird jedoch auf 15 Dezimalstellen beschränkt.
Boolean Boolean Entweder ein True oder ein False-Wert.
Text String Eine Unicodezeichen-Datenzeichenfolge. Hierbei kann es sich um Zeichenfolgen, Zahlen oder Datumsangaben handeln, die im Textformat dargestellt werden.
Date Datum/Uhrzeit Datumsangaben und Uhrzeiten in einer akzeptierten Form für die Darstellung von Datum und Uhrzeit.

Gültig sind alle Datumsangaben nach dem 1. März 1900.
Währung Währung Der Währungsdatentyp lässt Werte zwischen -922.337.203.685.477.5807 bis 922.337.203.685.477.5806 mit vier Dezimalstellen fester Genauigkeit zu.
Leer Ein leerer Datentyp in DAX, der SQL-NULLEN darstellt und ersetzt. Sie können mit der BLANK-Funktion ein Leerzeichen erstellen und mit der logischen ISBLANK-Funktion nach Leerzeichen suchen.

* Wenn Sie versuchen, Daten mit großen numerischen Werten zu importieren, schlägt der Import möglicherweise mit dem folgenden Fehler fehl:

In-Memory-Datenbankfehler: Die Spalte "<Spaltenname>" der Tabelle "<Tabellenname>" enthält den Wert "1.7976931348623157e+308", der nicht unterstützt wird. Der Vorgang wurde abgebrochen.

Dieser Fehler tritt auf, da der Modell-Designer diesen Wert zur Darstellung von Nullen verwendet. Die Werte in der folgenden Liste sind zum vorherigen erwähnten Nullwert synonym:

Wert
9223372036854775807
-9223372036854775808
1.7976931348623158e+308
-1.7976931348623158e+308

Entfernen Sie den Wert aus Ihren Daten, und versuchen Sie es erneut zu importieren.

Hinweis

Sie können keine Elemente aus einer varchar(max) -Spalte importieren, die eine Zeichenfolgenlänge von mehr als 131.072 Zeichen enthält.

Tabellendatentyp

Außerdem verwendet DAX einen table -Datentyp. Dieser Datentyp wird von DAX in vielen Funktionen verwendet, z. B. in Aggregationen und Zeitintelligenzberechnungen. Einige Funktionen erfordern einen Verweis auf eine Tabelle, während andere Funktionen eine Tabelle zurückgeben, die dann als Eingabe für andere Funktionen verwendet werden kann. In einigen Funktionen, die eine Tabelle als Eingabe erfordern, können Sie einen Ausdruck angeben, der eine Tabelle ergibt. Bei einigen Funktionen ist ein Verweis auf eine Basistabelle erforderlich. Informationen zu den Anforderungen bestimmter Funktionen finden Sie unter DAX-Funktionsreferenz.

Implizite und explizite Datentypkonvertierung in DAX-Formeln

Jede DAX-Funktion hat bestimmte Anforderungen im Hinblick auf die Datentypen, die als Eingaben und Ausgaben verwendet werden. Einige Funktionen erfordern z. B. ganze Zahlen für einige Argumente und Daten für andere, während für andere Funktionen Text oder Tabellen erforderlich sind.

Wenn die Daten in der Spalte, die Sie als Argument angeben, mit dem für die Funktion erforderlichen Datentyp nicht kompatibel sind, gibt DAX in vielen Fällen einen Fehler zurück. Wo immer möglich, versucht DAX jedoch, die Daten implizit in den erforderlichen Datentyp zu konvertieren. Beispiel:

  • Sie können eine Zahl, z. B. "123", als Zeichenfolge eingeben. DAX analysiert die Zeichenfolge und versucht, sie als Zahlendatentyp anzugeben.

  • Sie können TRUE + 1 addieren und erhalten als Ergebnis 2, da TRUE implizit in die Zahl 1 konvertiert wird und die Operation 1+1 ausgeführt wird.

  • Wenn Sie Werte in zwei Spalten addieren und ein Wert als Text ("12") und der andere als Zahl (12) dargestellt wird, konvertiert DAX die Zeichenfolge implizit in eine Zahl und führt dann die Addition für ein numerisches Ergebnis durch. Vom folgenden Ausdruck wird 44 zurückgegeben: = "22" + 22

  • Wenn Sie versuchen, zwei Zahlen zu verketten, werden diese als Zeichenfolgen dargestellt und dann verkettet. Vom folgenden Ausdruck wird "1234" zurückgegeben: = 12 & 34

In der folgenden Tabelle werden die impliziten Datentypkonvertierungen zusammengefasst, die in Formeln ausgeführt werden. Im Allgemeinen verhält sich der Designer für semantische Modelle wie Microsoft Excel und führt implizite Konvertierungen aus, wann immer dies möglich und bei dem betreffenden Vorgang erforderlich ist.

Tabelle mit impliziten Datenkonvertierungen

Der ausgeführte Konvertierungstyp wird durch den Operator bestimmt, der die Werte umwandelt, bevor die entsprechende Operation durchgeführt wird. In diesen Tabellen sind die Operatoren aufgeführt. Außerdem wird die Konvertierung angegeben, die für die einzelnen Datentypen in der Spalte ausgeführt wird, wenn dieser dem Datentyp in der überschneidenden Zeile zugeordnet wird.

Hinweis

Textdatentypen sind in diesen Tabellen nicht enthalten. Wenn eine Zahl in einem Textformat dargestellt wird, versucht der Modell-Designer in einigen Fällen, den Zahlentyp zu bestimmen und ihn als Zahl darzustellen.

Addition (+)

INTEGER WÄHRUNG REAL Datum/Uhrzeit
INTEGER INTEGER WÄHRUNG REAL Datum/Uhrzeit
CURRENCY WÄHRUNG WÄHRUNG REAL Datum/Uhrzeit
REAL real REAL REAL Datum/Uhrzeit
Datum/Uhrzeit Datum/Uhrzeit Datum/Uhrzeit Datum/Uhrzeit Datum/Uhrzeit

Wenn beispielsweise eine reelle Zahl bei einer Addition in Verbindung mit Währungsdaten verwendet wird, werden beide Werte in REAL konvertiert, und das Ergebnis wird als REAL zurückgegeben.

Subtraction (-)

In der folgenden Tabelle ist die Zeilenüberschrift die minuend (linke Seite) und die Spaltenüberschrift der Subtrahend (rechts):

INTEGER WÄHRUNG REAL Datum/Uhrzeit
INTEGER INTEGER WÄHRUNG REAL REAL
CURRENCY WÄHRUNG WÄHRUNG REAL REAL
REAL real REAL REAL REAL
Datum/Uhrzeit Datum/Uhrzeit Datum/Uhrzeit Datum/Uhrzeit Datum/Uhrzeit

Wenn beispielsweise ein Datum bei einer Subtraktion mit einem beliebigen anderen Datentyp verwendet wird, werden beide Werte in Datumsangaben konvertiert, und der Rückgabewert ist ebenfalls ein Datum.

Hinweis

Tabellarische Modelle unterstützen auch den unären Operator "-" (negativ). Dieser Operator ändert den Datentyp des Operanden jedoch nicht.

Multiplikation (*)

INTEGER WÄHRUNG REAL Datum/Uhrzeit
INTEGER INTEGER WÄHRUNG REAL INTEGER
CURRENCY WÄHRUNG REAL WÄHRUNG WÄHRUNG
REAL REAL WÄHRUNG REAL REAL

Wenn beispielsweise eine Ganzzahl bei einer Multiplikation mit einer reellen Zahl kombiniert wird, werden beide Zahlen in reelle Zahlen konvertiert, und der Rückgabewert ist ebenfalls REAL.

Division (/)

In der folgenden Tabelle ist der Zeilenheader der Zähler und die Spaltenüberschrift der Nenner: (Zeile/Spalte)

INTEGER WÄHRUNG REAL Datum/Uhrzeit
INTEGER REAL WÄHRUNG REAL REAL
CURRENCY WÄHRUNG REAL WÄHRUNG REAL
REAL real REAL REAL REAL
Datum/Uhrzeit real REAL REAL REAL

Wenn beispielsweise eine Ganzzahl bei einer Division mit einem Währungswert kombiniert wird, werden beide Werte in reelle Zahlen konvertiert, und das Ergebnis ist ebenfalls eine reelle Zahl.

Vergleichsoperatoren

Nur ein begrenzter Satz gemischter Datentypkombinationen für Vergleichsvorgänge wird unterstützt. Weitere Informationen finden Sie unter DAX-Operator (Referenz).

Behandlung von Leerzeichen, leeren Zeichenfolgen und Nullwerten

In der folgenden Tabelle sind die Unterschiede zwischen DAX und in Microsoft Excel zusammengefasst, wie Leerzeichen behandelt werden:

Ausdruck (Expression) DAX Excel
BLANK + BLANK BLANK 0 (Null)
BLANK +5 5 5
BLANK * 5 BLANK 0 (Null)
5/BLANK Unendlich Fehler
0/BLANK NaN Fehler (Error)
BLANK/BLANK BLANK Fehler
FALSE OR BLANK FALSE FALSE
FALSE AND BLANK FALSE FALSE
TRUE OR BLANK TRUE TRUE
TRUE AND BLANK FALSE TRUE
BLANK OR BLANK BLANK Fehler
BLANK AND BLANK BLANK Fehler

Informationen zur Behandlung von Leerzeichen durch eine bestimmte Funktion oder einen Operator finden Sie in den einzelnen Themen zu den verschiedenen DAX-Funktionen im Abschnitt DAX-Funktionsreferenz.