Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Tento článek popisuje datové typy, které lze použít v tabulkových modelech, a popisuje implicitní převod datových typů při výpočtu nebo použití dat ve vzorci DAX (Data Analysis Expressions).
Datové typy používané v tabulkových modelech
Při importu dat nebo použití hodnoty ve vzorci, i když původní zdroj dat obsahuje jiný datový typ, data se převedou na jeden z následujících datových typů. Hodnoty, které jsou výsledkem vzorců, také používají tyto datové typy.
Obecně platí, že tyto datové typy jsou implementované tak, aby umožňovaly přesné výpočty v počítaných sloupcích a pro konzistenci platí stejná omezení pro zbytek dat v modelech.
Formáty používané pro čísla, měnu, kalendářní data a časy by měly odpovídat formátu národního prostředí zadaného v klientovi používaném k práci s daty modelu. Pomocí možností formátování v modelu můžete řídit způsob zobrazení hodnoty.
| Datový typ v modelu | Datový typ v jazyce DAX | Popis |
|---|---|---|
| Celé číslo | Celočíselná hodnota 64 bitů (8 bajtů) * Poznámka: Vzorce DAX nepodporují datové typy, které jsou příliš malé na to, aby držely minimální hodnotu uvedenou v popisu. |
Čísla, která nemají desetinná místa. Celá čísla můžou být kladná nebo záporná, ale musí být celá čísla mezi -9 223 372 036 854 775 807 (-2^63+1) a 9 223 372 036 854 775 806 (2^63-2). |
| Desetinné číslo | Reálné číslo 64 bitů (osm bajtů) * Poznámka: Vzorce DAX nepodporují datové typy, které jsou příliš malé na to, aby držely minimální hodnotu uvedenou v popisu. |
Reálná čísla jsou čísla, která můžou mít desetinná místa. Reálná čísla pokrývají širokou škálu hodnot: Záporné hodnoty od -1,79E +308 do -2,23E -308 Nula Kladné hodnoty od 2,23E -308 do 1,79E + 308 Počet významných číslic je však omezen na 15 desetinných míst. |
| logický | logický | Hodnota True nebo False. |
| Text | Řetězec | Datový řetězec znaků Unicode. Můžou to být řetězce, čísla nebo kalendářní data reprezentovaná v textovém formátu. Efektivní maximální velikost řetězce podléhá limitu 32767 bajtů. |
| Binární | Řetězec | Nestrukturovaná binární data, například obrázky. Sloupce s tímto datovým typem mají v jazyce DAX omezené funkce. Efektivní maximální velikost binární datové hodnoty podléhá 67108864 limitu bajtů. |
| Datum | Datum a čas | Kalendářní data a časy v přijaté formě zobrazení. Platná data jsou všechna kalendářní data po 1. březnu 1900. |
| Měna | Měna | Datový typ měny umožňuje hodnoty od -922 337 203 685 477,5807 do 922 337 203 685 477,5806 se čtyřmi desetinnými číslicemi pevné přesnosti. |
| Varianta | Varianta | Používá se pro výrazy, jako jsou míry DAX, které mohou vracet různé datové typy. Například míra DAX, která vrátí buď celé číslo, nebo řetězec bude typu variant. |
| není k dispozici | Prázdný | Prázdné je datový typ v jazyce DAX, který představuje a nahrazuje hodnoty null SQL. Prázdnou hodnotu můžete vytvořit pomocí funkce BLANK a otestovat prázdné hodnoty pomocí logické funkce ISBLANK. |
* Pokud se pokusíte importovat data s velkými číselnými hodnotami, může import selhat s následující chybou:
Chyba databáze v paměti. Sloupec '<název sloupce>' tabulky '<název tabulky>' obsahuje hodnotu '1.7976931348623157e+308', která není podporována. Operace byla zrušena.
K této chybě dochází, protože návrhář modelu používá tuto hodnotu k reprezentaci hodnot null. Hodnoty v následujícím seznamu jsou synonymy pro předchozí uvedenou hodnotu null:
| Hodnota |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1.7976931348623158e+308 |
| -1,7976931348623158e+308 |
Odeberte hodnotu z dat a zkuste import znovu.
Poznámka:
Nelze importovat ze sloupce varchar(max), který obsahuje délku řetězce delší než 131 072 znaků.
Datový typ Tabulky
Navíc jazyk DAX používá datový typ tabulka. Tento datový typ používá jazyk DAX v mnoha funkcích, jako jsou agregace a výpočty časové inteligence. Některé funkce vyžadují odkaz na tabulku; jiné funkce vrátí tabulku, která se pak dá použít jako vstup do jiných funkcí. V některých funkcích, které jako vstup vyžadují tabulku, můžete zadat výraz, který se vyhodnotí jako tabulka; u některých funkcí je vyžadován odkaz na základní tabulku. Informace o požadavcích konkrétních funkcí najdete v tématu Referenční informace k funkcím jazyka DAX.
Implicitní a explicitní převod datového typu ve vzorcích DAX
Každá funkce DAX má specifické požadavky na typy dat, které se používají jako vstupy a výstupy. Některé funkce například vyžadují celá čísla pro některé argumenty a kalendářní data pro jiné; jiné funkce vyžadují text nebo tabulky.
Pokud jsou data ve sloupci, který zadáte jako argument, nekompatibilní s datovým typem požadovaným funkcí, vrátí jazyk DAX v mnoha případech chybu. Kdykoli je to ale možné, daX se pokusí implicitně převést data na požadovaný datový typ. Například:
Jako řetězec můžete zadat číslo, například 123. DAX analyzuje řetězec a pokouší se ho určit jako číselný datový typ.
Můžete přidat hodnotu PRAVDA + 1 a získat výsledek 2, protože pravda je implicitně převedena na číslo 1 a operace 1+1 se provede.
Pokud sčítáte hodnoty ve dvou sloupcích a jedna hodnota bude reprezentována jako text ("12") a druhá jako číslo (12), DAX implicitně převede řetězec na číslo a pak provede sčítání pro číselný výsledek. Následující výraz vrátí hodnotu 44: = "22" + 22
Pokud se pokusíte zřetězit dvě čísla, zobrazí se jako řetězce a jsou zřetězená. Následující výraz vrátí "1234": = 12 & 34
Následující tabulka shrnuje implicitní převody datových typů, které se provádějí ve vzorcích. Obecně platí, že se návrhář sémantických modelů chová jako Microsoft Excel a provádí implicitní převody, kdykoli je to možné v případě potřeby zadanou operací.
Tabulka implicitních převodů dat
Typ převodu, který se provádí, je určen operátorem, který před provedením požadované operace přetypuje hodnoty, které vyžaduje. Tyto tabulky uvádějí operátory a označují převod, který se provádí u každého datového typu ve sloupci, když je spárován s datovým typem v protínajícím řádku.
Poznámka:
Textové datové typy nejsou v těchto tabulkách zahrnuty. Pokud je číslo reprezentováno jako v textovém formátu, v některých případech se návrhář modelu pokusí určit typ čísla a představuje ho jako číslo.
Přidání (+)
| CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | Datum a čas | |
|---|---|---|---|---|
| CELÉ ČÍSLO | CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | Datum a čas |
| MĚNA | MĚNA | MĚNA | SKUTEČNÝ | Datum a čas |
| REÁLNÝ | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ | Datum a čas |
| Datum/čas | Datum a čas | Datum a čas | Datum a čas | Datum a čas |
Pokud se například reálné číslo použije v kombinaci s daty měny, obě hodnoty se převedou na REAL a výsledek se vrátí jako REAL.
Odčítání (-)
V následující tabulce je záhlaví řádku minuend (levá strana) a záhlaví sloupce je subtrahend (pravá strana):
| CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | Datum a čas | |
|---|---|---|---|---|
| CELÉ ČÍSLO | CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | SKUTEČNÝ |
| MĚNA | MĚNA | MĚNA | SKUTEČNÝ | SKUTEČNÝ |
| REÁLNÝ | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ |
| Datum/čas | Datum a čas | Datum a čas | Datum a čas | Datum a čas |
Pokud se například datum použije v operaci odčítání s jiným datovým typem, obě hodnoty se převedou na kalendářní data a návratová hodnota je také datum.
Poznámka:
Tabulkové modely také podporují unární operátor – (záporné), ale tento operátor nemění datový typ operandu.
Násobení (*)
| CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | Datum a čas | |
|---|---|---|---|---|
| CELÉ ČÍSLO | CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | CELÉ ČÍSLO |
| MĚNA | MĚNA | SKUTEČNÝ | MĚNA | MĚNA |
| REÁLNÝ | SKUTEČNÝ | MĚNA | SKUTEČNÝ | SKUTEČNÝ |
Pokud se například celé číslo zkombinuje s reálným číslem v operaci násobení, obě čísla se převedou na reálná čísla a vrácená hodnota je také REAL.
Dělení (/)
V následující tabulce je záhlaví řádku čitatelem a záhlaví sloupce jmenovatelem: (Řádek/Sloupec).
| CELÉ ČÍSLO | MĚNA | SKUTEČNÝ | Datum a čas | |
|---|---|---|---|---|
| CELÉ ČÍSLO | SKUTEČNÝ | MĚNA | SKUTEČNÝ | SKUTEČNÝ |
| MĚNA | MĚNA | SKUTEČNÝ | MĚNA | SKUTEČNÝ |
| REÁLNÝ | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ |
| Datum/čas | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ | SKUTEČNÝ |
Pokud se například celé číslo zkombinuje s hodnotou měny v operaci dělení, obě hodnoty se převedou na reálná čísla a výsledek je také reálné číslo.
Porovnávací operátory
Podporuje se pouze omezená sada kombinací datových typů pro operace porovnání. Další informace najdete v tématu Referenční příručka operátorů DAX.
Zpracování prázdných hodnot, prázdných řetězců a nulových hodnot
Následující tabulka shrnuje rozdíly mezi jazykem DAX a Microsoft Excelem způsobem, jakým se zpracovávají prázdné hodnoty:
| Výraz | DAX | Excel |
|---|---|---|
| BLANK + BLANK | BIANKO | 0 (nula) |
| BLANK +5 | 5 | 5 |
| BLANK * 5 | BIANKO | 0 (nula) |
| 5/BLANK | Nekonečno | Chyba |
| 0/BLANK | Není číslo | Chyba |
| BLANK/BLANK | BIANKO | Chyba |
| NEPRAVDIVÉ NEBO PRÁZDNÉ | NEPRAVDA | NEPRAVDA |
| NEPRAVDIVÉ A PRÁZDNÉ | NEPRAVDA | NEPRAVDA |
| PRAVDA NEBO PRÁZDNO | PRAVDIVÝ | PRAVDIVÝ |
| PRAVDA A MEZERA | NEPRAVDA | PRAVDIVÝ |
| PRÁZDNÉ NEBO NĚCO JINÉHO | BIANKO | Chyba |
| PRÁZDNÉ A NEVYPLNĚNÉ | BIANKO | Chyba |
Podrobnosti o tom, jak konkrétní funkce nebo operátor zpracovává prázdné hodnoty, najdete v jednotlivých tématech jednotlivých funkcí JAZYKA DAX v části Referenční informace k funkcím JAZYKA DAX.