Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
aplica-se a:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Este artigo descreve os tipos de dados que podem ser usados em modelos tabulares e discute a conversão implícita de tipos de dados quando os dados são calculados ou usados em uma fórmula DAX (Data Analysis Expressions).
Tipos de dados usados em modelos tabulares
Quando você importa dados ou usa um valor em uma fórmula, mesmo que a fonte de dados original contenha um tipo de dados diferente, os dados são convertidos em um dos tipos de dados a seguir. Os valores resultantes de fórmulas também usam esses tipos de dados.
Em geral, esses tipos de dados são implementados para habilitar cálculos precisos em colunas calculadas e, para consistência, as mesmas restrições se aplicam ao restante dos dados em modelos.
Os formatos usados para números, moeda, datas e horas devem seguir o formato da localidade especificada no cliente usado para trabalhar com dados de modelo. Você pode usar as opções de formatação no modelo para controlar a maneira como o valor é exibido.
| Tipo de dados no modelo | Tipo de dados no DAX | Descrição |
|---|---|---|
| Número Inteiro | Um valor inteiro de 64 bits (oito bytes) * Nota: Fórmulas DAX não dão suporte a tipos de dados que são muito pequenos para manter o valor mínimo listado na descrição. |
Números que não têm casas decimais. Inteiros podem ser números positivos ou negativos, mas deve ser números inteiros entre -9.223.372.036.854.775.807 (-2^63+1) e 9.223.372.036.854.775.806 (2^63-2). |
| Número Decimal | Um número real de 64 bits (oito bytes) * Nota: Fórmulas DAX não dão suporte a tipos de dados que são muito pequenos para manter o valor mínimo listado na descrição. |
Números reais são aqueles que podem incluir casas decimais. Os números reais abrangem uma ampla gama de valores: Valores negativos de -1,79E +308 a -2,23E -308 Zero Valores positivos de 2,23E -308 a 1,79E + 308 No entanto, o número de dígitos significativos é limitado a 15 dígitos decimais. |
| Booliano | Booliano | Um valor Verdadeiro ou Falso. |
| Texto | fio | Uma cadeia de dados de caractere Unicode. Pode ser cadeias de caracteres, números ou datas representadas em um formato de texto. O tamanho máximo efetivo de uma cadeia de caracteres está sujeito a um limite de bytes de 32767. |
| Binário | fio | Dados binários não estruturados, por exemplo, imagens. As colunas com esse tipo de dados têm funcionalidade limitada no DAX. O tamanho máximo efetivo de um valor de dados binários está sujeito a um limite de bytes 67108864. |
| Data (calendário) | Data/hora | Datas e horas em um formato aceito de data e hora. Datas válidas são todas datas após 1º de março de 1900. |
| Moeda | Moeda | O tipo de dados de moeda permite valores entre -922.337.203.685.477.5807 a 922.337.203.685.477.5806 com quatro dígitos decimais de precisão fixa. |
| Variante | Variante | Usado para expressões, como medidas DAX, que podem retornar tipos de dados diferentes. Por exemplo, uma medida DAX que retorna um número inteiro ou uma cadeia de caracteres será do tipo variant. |
| Não aplicável | Em Branco | Um "blank" é um tipo de dados no DAX que representa e substitui nulos do SQL. Você pode criar um espaço em branco usando a função BLANK e testar espaços em branco usando a função lógica ISBLANK. |
* Se você tentar importar dados com valores numéricos grandes, a importação poderá falhar com o seguinte erro:
Erro de banco de dados na memória: a coluna '<nome da coluna>' da tabela '<nome da tabela>' contém um valor, '1.7976931348623157e+308', que não é suportado. A operação foi cancelada.
Esse erro ocorre porque o designer de modelo usa esse valor para representar nulos. Os valores na lista a seguir são sinônimos do valor nulo mencionado anteriormente:
| Valor |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| -1.7976931348623158e+308 |
Remova o valor de seus dados e tente importar novamente.
Observação
Você não pode importar de uma coluna varchar(max) que contém um comprimento de cadeia de caracteres de mais de 131.072 caracteres.
Tipo de dados de tabela
Além disso, o DAX usa um tipo de dados de tabela. Esse tipo de dados é usado pelo DAX em muitas funções, como agregações e cálculos de inteligência de tempo. Algumas funções exigem uma referência a uma tabela; outras funções retornam uma tabela que pode ser usada como entrada para outras funções. Em algumas funções que exigem uma tabela como entrada, você pode especificar uma expressão que seja avaliada como uma tabela; para algumas funções, uma referência a uma tabela base é necessária. Para obter informações sobre os requisitos de funções específicas, consulte a Referência de Função DAX.
Conversão de tipo de dados implícita e explícita em fórmulas DAX
Cada função DAX tem requisitos específicos sobre os tipos de dados que são usados como entradas e saídas. Por exemplo, algumas funções exigem inteiros para alguns argumentos e datas para outros; outras funções exigem texto ou tabelas.
Se os dados na coluna que você especificar como argumento forem incompatíveis com o tipo de dados exigido pela função, o DAX em muitos casos retornará um erro. No entanto, sempre que possível, o DAX tenta converter implicitamente os dados no tipo de dados necessário. Por exemplo:
Você pode digitar um número, por exemplo, "123", como uma cadeia de caracteres. O DAX analisa a cadeia de caracteres e tenta especificá-la como um tipo de dados numérico.
Você pode adicionar TRUE + 1 e obter o resultado 2, pois TRUE é convertido implicitamente no número 1 e a operação 1+1 é executada.
Se você adicionar valores em duas colunas e um valor for representado como texto ("12") e o outro como um número (12), o DAX converterá implicitamente a cadeia de caracteres em um número e, em seguida, fará a adição para um resultado numérico. A expressão a seguir retorna 44: = "22" + 22
Se você tentar concatenar dois números, eles serão apresentados como strings e então concatenados. A expressão a seguir retorna "1234": = 12 e 34
A tabela a seguir resume as conversões de tipo de dados implícitas executadas em fórmulas. Em geral, o designer de modelo semântico se comporta como o Microsoft Excel e executa conversões implícitas sempre que possível quando exigido pela operação especificada.
Tabela de conversões de dados implícitas
O tipo de conversão que é executado é determinado pelo operador, que converte os valores necessários antes de executar a operação solicitada. Essas tabelas listam os operadores e indicam a conversão executada em cada tipo de dados na coluna quando ela é emparelhada com o tipo de dados na linha de interseção.
Observação
Os tipos de dados de texto não estão incluídos nessas tabelas. Quando um número é representado como em um formato de texto, em alguns casos, o designer de modelo tenta determinar o tipo de número e representá-lo como um número.
Adição (+)
| INTEIRO | MOEDA | REAL | Data/hora | |
|---|---|---|---|---|
| INTEIRO | INTEIRO | MOEDA | REAL | Data/hora |
| MOEDA | MOEDA | MOEDA | REAL | Data/hora |
| REAL | REAL | REAL | REAL | Data/hora |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Por exemplo, se um número real for usado em uma operação de adição em combinação com dados de moeda, ambos os valores serão convertidos em REAL e o resultado será retornado como REAL.
Subtração (-)
Na tabela a seguir, o cabeçalho da linha é o minuend (lado esquerdo) e o cabeçalho da coluna é o subtrahend (lado direito):
| INTEIRO | MOEDA | REAL | Data/hora | |
|---|---|---|---|---|
| INTEIRO | INTEIRO | MOEDA | REAL | REAL |
| MOEDA | MOEDA | MOEDA | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Por exemplo, se uma data for usada em uma operação de subtração com qualquer outro tipo de dados, ambos os valores serão convertidos em datas e o valor retornado também será uma data.
Observação
Os modelos tabulares também dão suporte ao operador unário , (negativo), mas esse operador não altera o tipo de dados do operando.
Multiplicação (*)
| INTEIRO | MOEDA | REAL | Data/hora | |
|---|---|---|---|---|
| INTEIRO | INTEIRO | MOEDA | REAL | INTEIRO |
| MOEDA | MOEDA | REAL | MOEDA | MOEDA |
| REAL | REAL | MOEDA | REAL | REAL |
Por exemplo, se um inteiro for combinado com um número real em uma operação de multiplicação, ambos os números serão convertidos em números reais e o valor retornado também será REAL.
Divisão (/)
Na tabela a seguir, o cabeçalho de linha é o numerador e o cabeçalho da coluna é o denominador: (Linha/Coluna)
| INTEIRO | MOEDA | REAL | Data/hora | |
|---|---|---|---|---|
| INTEIRO | REAL | MOEDA | REAL | REAL |
| MOEDA | MOEDA | REAL | MOEDA | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data/hora | REAL | REAL | REAL | REAL |
Por exemplo, se um inteiro for combinado com um valor de moeda em uma operação de divisão, ambos os valores serão convertidos em números reais e o resultado também será um número real.
Operadores de comparação
Há suporte apenas para um conjunto limitado de combinações de tipo de dados mistos para operações de comparação. Para saber mais, veja Referência de Operadores DAX.
Manipulação de espaços em branco, cadeias de caracteres vazias e valores zero
A tabela a seguir resume as diferenças entre o DAX e o Microsoft Excel, da maneira como os espaços em branco são tratados:
| Expressão | DAX | Distinguir-se |
|---|---|---|
| BLANK + BLANK | EM BRANCO | 0 (zero) |
| BLANK +5 | 5 | 5 |
| BLANK * 5 | EM BRANCO | 0 (zero) |
| 5/EM BRANCO | Infinito | Erro |
| 0/EM BRANCO | Nan | Erro |
| EM BRANCO/EM BRANCO | EM BRANCO | Erro |
| FALSE OU BLANK | FALSO | FALSO |
| FALSO E EM BRANCO | FALSO | FALSO |
| TRUE OU BLANK | VERDADEIRO | VERDADEIRO |
| TRUE E BLANK | FALSO | VERDADEIRO |
| BLANK OU BLANK | EM BRANCO | Erro |
| BLANK E BLANK | EM BRANCO | Erro |
Para obter detalhes sobre como uma função ou operador específico manipula espaços em branco, consulte os tópicos individuais para cada função DAX, na seção, Referência de Função DAX.