Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
se aplica 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 seguintes tipos de dados. Os valores resultantes de fórmulas também usam esses tipos de dados.
Em geral, esses tipos de dados são implementados para permitir cálculos precisos em colunas calculadas e, para consistência, as mesmas restrições se aplicam ao restante dos dados nos modelos.
Os formatos usados para números, moeda, datas e horas devem seguir o formato da localidade especificado no cliente usado para trabalhar com dados do 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)* Observação: As fórmulas DAX não suportam tipos de dados que são muito pequenos para manter o valor mínimo listado na descrição. |
Números sem casas decimais. Os números inteiros podem ser números positivos ou negativos, mas devem 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)* Observação: As fórmulas DAX não suportam tipos de dados que são muito pequenos para manter o valor mínimo listado na descrição. |
Números reais são números que podem ter casas decimais. Os números reais abrangem uma vasta 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. |
| Booleano | Booleano | Um valor Verdadeiro ou Falso. |
| Texto | Cordão | Uma cadeia de dados de caracteres Unicode. Podem 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 32767 bytes. |
| Binário | Cordão | 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 67108864 bytes. |
| Data | Data/hora | Datas e horas numa representação aceitável de data-hora. As datas válidas são todas as datas posteriores a 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 diferentes tipos de dados. Por exemplo, uma medida DAX que retorna um número inteiro ou uma cadeia de caracteres será do tipo variante. |
| N/A | Em branco | Um branco é um tipo de dados no DAX que representa e substitui os valores nulos em 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 que tenham grandes valores numéricos, a importação pode falhar com o seguinte erro:
Erro na base 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 é aceite. A operação foi cancelada.
Este 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 dos dados e tente importar novamente.
Observação
Não é possível importar de uma coluna varchar(max) que contenha um comprimento de cadeia de caracteres superior a 131.072 caracteres.
Tipo de dados da tabela
Além disso, o DAX utiliza 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 requerem 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 é avaliada como uma tabela; Para algumas funções, é necessária uma referência a uma tabela base. Para obter informações sobre os requisitos de funções específicas, consulte 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 quanto aos tipos de dados que são usados como entradas e saídas. Por exemplo, algumas funções requerem números inteiros para alguns argumentos e datas para outros; outras funções requerem texto ou tabelas.
Se os dados na coluna que você especificar como um 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 para o 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, porque TRUE é implicitamente convertido para o 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 implicitamente converte a cadeia de caracteres em um número e, em seguida, fará a adição para um resultado numérico. A seguinte expressão retorna 44: = "22" + 22
Se você tentar concatenar dois números, eles serão apresentados como cadeias de caracteres e, em seguida, concatenados. A seguinte expressão retorna "1234": = 12 & 34
A tabela a seguir resume as conversões de tipo de dados implícitas que são 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 é realizada é determinado pelo operador, que lança os valores necessários antes de executar a operação solicitada. Essas tabelas listam os operadores e indicam a conversão que é executada em cada tipo de dados na coluna quando ele é emparelhado com o tipo de dados na linha de interseção.
Observação
Os tipos de dados de texto não estão incluídos nestas 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 | O Real | Data/hora | |
|---|---|---|---|---|
| INTEIRO | INTEIRO | MOEDA | O Real | Data/hora |
| MOEDA | MOEDA | MOEDA | O Real | Data/hora |
| REAL | O Real | O Real | O Real | Data/hora |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Por exemplo, se um número real é usado em uma operação de adição em combinação com dados de moeda, ambos os valores são convertidos em REAL e o resultado é 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 | O Real | Data/hora | |
|---|---|---|---|---|
| INTEIRO | INTEIRO | MOEDA | O Real | O Real |
| MOEDA | MOEDA | MOEDA | O Real | O Real |
| REAL | O Real | O Real | O Real | O 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 de retorno também será uma data.
Observação
Os modelos tabulares também suportam o operador unário, - (negativo), mas este operador não altera o tipo de dados do operando.
Multiplicação (*)
| INTEIRO | MOEDA | O Real | Data/hora | |
|---|---|---|---|---|
| INTEIRO | INTEIRO | MOEDA | O Real | INTEIRO |
| MOEDA | MOEDA | O Real | MOEDA | MOEDA |
| REAL | O Real | MOEDA | O Real | O Real |
Por exemplo, se um inteiro é combinado com um número real em uma operação de multiplicação, ambos os números são convertidos em números reais, e o valor de retorno também é REAL.
Divisão (/)
Na tabela seguinte, o cabeçalho da linha é o numerador e o cabeçalho da coluna é o denominador: (Linha/Coluna)
| INTEIRO | MOEDA | O Real | Data/hora | |
|---|---|---|---|---|
| INTEIRO | O Real | MOEDA | O Real | O Real |
| MOEDA | MOEDA | O Real | MOEDA | O Real |
| REAL | O Real | O Real | O Real | O Real |
| Data/hora | O Real | O Real | O Real | O Real |
Por exemplo, se um inteiro é combinado com um valor de moeda em uma operação de divisão, ambos os valores são convertidos em números reais, e o resultado também é um número real.
Operadores de comparação
Apenas um conjunto limitado de combinações mistas de tipos de dados para operações de comparação é suportado. Para saber mais, consulte Referência do operador 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 no Microsoft Excel, na maneira como os espaços em branco são tratados:
| Expressão | DAX | Excel |
|---|---|---|
| EM BRANCO + EM BRANCO | EM BRANCO | 0 (zero) |
| EM BRANCO +5 | 5 | 5 |
| BRANCO * 5 | EM BRANCO | 0 (zero) |
| 5/EM BRANCO | Infinito | Erro |
| 0/EM BRANCO | NaN | Erro |
| EM BRANCO/EM BRANCO | EM BRANCO | Erro |
| FALSO OU EM BRANCO | FALSO | FALSO |
| FALSO E VAZIO | FALSO | FALSO |
| VERDADEIRO OU EM BRANCO | VERDADEIRO | VERDADEIRO |
| VERDADEIRO E NULO | FALSO | VERDADEIRO |
| EM BRANCO OU VAZIO | EM BRANCO | Erro |
| BRANCO E BRANCO | EM BRANCO | Erro |
Para obter detalhes sobre como uma determinada função ou operador lida com espaços em branco, consulte os tópicos individuais para cada função DAX, na seção, Referência de função DAX.