Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
W tym artykule opisano typy danych, które mogą być używane w modelach tabelarycznych, oraz omówiono niejawną konwersję typów danych, gdy dane są obliczane lub używane w formule języka DAX (Data Analysis Expressions).
Typy danych używane w modelach tabelarycznych
Podczas importowania danych lub używania wartości w formule, nawet jeśli oryginalne źródło danych zawiera inny typ danych, dane są konwertowane na jeden z następujących typów danych. Wartości wynikające z formuł używają również tych typów danych.
Ogólnie rzecz biorąc, te typy danych są implementowane w celu umożliwienia dokładnych obliczeń w kolumnach obliczeniowych, a w celu zapewnienia spójności te same ograniczenia dotyczą reszty danych w modelach.
Formaty używane dla liczb, waluty, dat i godzin powinny być zgodne z formatem ustawień regionalnych określonych na kliencie używanym do pracy z danymi modelu. Opcje formatowania w modelu umożliwiają kontrolowanie sposobu wyświetlania wartości.
| Typ danych w modelu | Typ danych w języku DAX | Opis |
|---|---|---|
| Liczba całkowita | 64-bitowa liczba całkowita (ośmiobajtowa) Uwaga: Formuły języka DAX nie obsługują typów danych, które są zbyt małe, aby przechowywać minimalną wartość wymienioną w opisie. |
Liczby, które nie mają miejsc dziesiętnych. Liczby całkowite mogą być liczbami dodatnimi lub ujemnymi, ale muszą być liczbami całkowitymi z zakresu od -9 223 372 036 854 775 807 (-2^63+1) do 9 223 372 036 854 775 806 (2^63-2). |
| Liczba dziesiętna | 64-bitowa rzeczywista liczba (czyli osiem bajtów) Uwaga: Formuły języka DAX nie obsługują typów danych, które są zbyt małe, aby przechowywać minimalną wartość wymienioną w opisie. |
Liczby rzeczywiste to liczby, które mogą mieć miejsca dziesiętne. Liczby rzeczywiste obejmują szeroki zakres wartości: Wartości ujemne z -1,79E +308 do -2,23E -308 Zero Wartości dodatnie od 2,23E -308 do 1,79E + 308 Jednak liczba cyfr znaczących jest ograniczona do 15 cyfr dziesiętnych. |
| Boolean | Boolean | Wartość albo Prawda, albo Fałsz. |
| Tekst | Sznurek | Ciąg danych znaków Unicode. Może to być ciągi, liczby lub daty reprezentowane w formacie tekstowym. Obowiązujący maksymalny rozmiar ciągu podlega limitowi 32767 bajtów. |
| Dwójkowy | Sznurek | Nieustrukturyzowane dane binarne, na przykład obrazy. Kolumny o tym typie danych mają ograniczoną funkcjonalność w języku DAX. Efektywny maksymalny rozmiar wartości danych binarnych podlega limitowi 67108864 bajtów. |
| Data kalendarzowa | Data i godzina | Daty i godziny w zaakceptowanej reprezentacji daty i godziny. Prawidłowe daty to wszystkie daty po 1 marca 1900 r. |
| Waluta | Waluta | Typ danych waluty umożliwia wartości z zakresu od -922 337 203 685 477,5807 do 922 337 203 685 477,5806 z czterema cyframi dziesiętnymi o stałej dokładności. |
| Wariant | Wariant | Służy do wyrażeń języka DAX, takich jak miary DAX, które mogą zwracać różne typy danych. Na przykład miara języka DAX zwracająca liczbę całkowitą lub ciąg będzie typu wariant. |
| N/A | Pusty | Wartość pusta to typ danych w języku DAX reprezentujący i zastępujący wartości null SQL. Możesz utworzyć pustą wartość za pomocą funkcji BLANK i sprawdzić, czy są puste wartości, używając funkcji logicznej ISBLANK. |
* Jeśli próbujesz zaimportować dane zawierające duże wartości liczbowe, importowanie może zakończyć się niepowodzeniem z powodu następującego błędu:
Błąd bazy danych w pamięci: kolumna '<nazwa kolumny>' w tabeli '<nazwa tabeli>' zawiera wartość '1.7976931348623157e+308', która nie jest obsługiwana. Operacja została anulowana.
Ten błąd występuje, ponieważ projektant modelu używa tej wartości do reprezentowania wartości null. Wartości na poniższej liście są synonimami wymienionej wcześniej wartości null:
| Wartość |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1.7976931348623158e+308 |
| -1.7976931348623158e+308 |
Usuń wartość z danych i spróbuj zaimportować ją ponownie.
Uwaga
Nie można zaimportować z kolumny varchar(max), która zawiera długość ciągu o długości przekraczającej 131 072 znaków.
Typ danych tabeli
Ponadto DAX używa typu danych tabeli. Ten typ danych jest używany przez język DAX w wielu funkcjach, takich jak agregacje i obliczenia związane z inteligencją czasową. Niektóre funkcje wymagają odwołania do tabeli; inne funkcje zwracają tabelę, która może być następnie używana jako dane wejściowe do innych funkcji. W niektórych funkcjach, które wymagają tabeli jako danych wejściowych, można określić wyrażenie, które daje w wyniku tabelę; w przypadku niektórych funkcji wymagane jest odwołanie do tabeli podstawowej. Aby uzyskać informacje na temat wymagań określonych funkcji, zobacz Dokumentacja funkcji języka DAX.
Niejawna i jawna konwersja typu danych w formułach języka DAX
Każda funkcja języka DAX ma określone wymagania dotyczące typów danych, które są używane jako dane wejściowe i wyjściowe. Na przykład niektóre funkcje wymagają liczb całkowitych dla niektórych argumentów i dat dla innych; inne funkcje wymagają tekstu lub tabel.
Jeśli dane w kolumnie określonej jako argument są niezgodne z typem danych wymaganym przez funkcję, w wielu przypadkach język DAX zwraca błąd. Jednak w miarę możliwości język DAX próbuje niejawnie przekonwertować dane na wymagany typ danych. Na przykład:
Możesz wpisać liczbę, na przykład "123", jako ciąg. Język DAX analizuje ciąg i stara się określić go jako typ danych liczbowych.
Możesz dodać wartość TRUE + 1 i uzyskać wynik 2, ponieważ wartość TRUE jest niejawnie konwertowana na liczbę 1, a operacja 1+1 jest wykonywana.
Jeśli dodasz wartości w dwóch kolumnach, a jedna wartość będzie reprezentowana jako tekst ("12"), a druga jako liczba (12), język DAX niejawnie konwertuje ciąg na liczbę, a następnie wykonuje dodanie wyniku liczbowego. Następujące wyrażenie zwraca wartość 44: = "22" + 22
Jeśli próbujesz połączyć dwie liczby, są one prezentowane jako ciągi, a następnie łączone. Następujące wyrażenie zwraca wartość "1234": = 12 i 34
Poniższa tabela zawiera podsumowanie niejawnych konwersji typów danych wykonywanych w formułach. Ogólnie rzecz biorąc, semantyczny projektant modelu zachowuje się jak program Microsoft Excel i wykonuje niejawne konwersje, gdy jest to możliwe, jeśli jest to wymagane przez określoną operację.
Tabela niejawnych konwersji danych
Typ wykonywanej konwersji jest określany przez operator, który rzutuje wymagane wartości przed wykonaniem żądanej operacji. Te tabele zawierają listę operatorów i wskazują konwersję wykonywaną na każdym typie danych w kolumnie, gdy jest ona sparowana z typem danych w wierszu przecinającym się.
Uwaga
Typy danych tekstowych nie są uwzględniane w tych tabelach. Gdy liczba jest reprezentowana jako w formacie tekstowym, w niektórych przypadkach projektant modelu próbuje określić typ liczbowy i przedstawić go jako liczbę.
Dodawanie (+)
| LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | Data i godzina | |
|---|---|---|---|---|
| LICZBA CAŁKOWITA | LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | Data i godzina |
| waluty | WALUTA | WALUTA | PRAWDZIWY | Data i godzina |
| PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | Data i godzina |
| data i godzina | Data i godzina | Data i godzina | Data i godzina | Data i godzina |
Jeśli na przykład liczba rzeczywista jest używana w operacji dodawania w połączeniu z danymi walutowymi, obie wartości są konwertowane na RZECZYWISTE, a wynik jest zwracany jako REAL.
Odejmowanie (-)
W poniższej tabeli nagłówek wiersza to minuend (lewa strona), a nagłówek kolumny jest odejmowany (po prawej stronie):
| LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | Data i godzina | |
|---|---|---|---|---|
| LICZBA CAŁKOWITA | LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | PRAWDZIWY |
| waluty | WALUTA | WALUTA | PRAWDZIWY | PRAWDZIWY |
| PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY |
| data i godzina | Data i godzina | Data i godzina | Data i godzina | Data i godzina |
Jeśli na przykład data jest używana w operacji odejmowania z dowolnym innym typem danych, obie wartości są konwertowane na daty, a wartość zwracana również będzie datą.
Uwaga
Modele tabelaryczne obsługują również operator jednoargumentowy — (ujemny), ale ten operator nie zmienia typu danych operandu.
Mnożenie (*)
| LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | Data i godzina | |
|---|---|---|---|---|
| LICZBA CAŁKOWITA | LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | LICZBA CAŁKOWITA |
| waluty | WALUTA | PRAWDZIWY | WALUTA | WALUTA |
| PRAWDZIWY | PRAWDZIWY | WALUTA | PRAWDZIWY | PRAWDZIWY |
Jeśli na przykład liczba całkowita jest połączona z liczbą rzeczywistą w operacji mnożenia, obie liczby są konwertowane na liczby rzeczywiste, a wartość zwracana jest również RZECZYWISTĄ.
Dzielenie (/)
W poniższej tabeli nagłówek wiersza jest licznikiem, a nagłówek kolumny jest mianownikiem: (Wiersz/kolumna)
| LICZBA CAŁKOWITA | WALUTA | PRAWDZIWY | Data i godzina | |
|---|---|---|---|---|
| LICZBA CAŁKOWITA | PRAWDZIWY | WALUTA | PRAWDZIWY | PRAWDZIWY |
| waluty | WALUTA | PRAWDZIWY | WALUTA | PRAWDZIWY |
| PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY |
| data i godzina | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY | PRAWDZIWY |
Jeśli na przykład liczba całkowita jest połączona z wartością waluty w operacji dzielenia, obie wartości są konwertowane na liczby rzeczywiste, a wynik jest również liczbą rzeczywistą.
Operatory porównania
Obsługiwany jest tylko ograniczony zestaw mieszanych kombinacji typów danych dla operacji porównania. Aby dowiedzieć się więcej, zobacz Referencja operatorów DAX.
Obsługa wartości pustych, pustych ciągów i wartości zerowych
Poniższa tabela zawiera podsumowanie różnic między językiem DAX i programem Microsoft Excel w sposobie obsługi pustych elementów.
| Wyrażenie | DAX | Excel |
|---|---|---|
| Puste + Puste | PUSTY | 0 (zero) |
| PUSTE +5 | 5 | 5 |
| PUSTE * 5 | PUSTY | 0 (zero) |
| 5/PUSTE | Nieskończoność | Błąd |
| 0/PUSTE | Nan | Błąd |
| PUSTE/PUSTE | PUSTY | Błąd |
| FAŁSZ LUB PUSTE | FAŁSZYWY | FAŁSZYWY |
| FAŁSZ I PUSTO | FAŁSZYWY | FAŁSZYWY |
| PRAWDA LUB PUSTA | PRAWIDŁOWE | PRAWIDŁOWE |
| TRUE I BLANK | FAŁSZYWY | PRAWIDŁOWE |
| PUSTE LUB NIEOKREŚLONE | PUSTY | Błąd |
| PUSTE I PUSTKA | PUSTY | Błąd |
Aby uzyskać szczegółowe informacje na temat sposobu obsługi wartości pustych przez określoną funkcję lub operator, zobacz poszczególne tematy dla każdej funkcji języka DAX w sekcji Dokumentacja funkcji języka DAX.