Listas de campos do Direct Discovery

Uma lista de campo é uma lista das especificações de campo fieldname {, fieldname} separada por vírgulas. Uma especificação de campo pode ser um nome de campo, no qual o mesmo nome é usado para o nome de coluna do banco de dados e o nome de campo. Ou uma especificação de campo pode ser um alias de campo, no qual uma expressão do banco de dados ou um nome de coluna recebe um nome de campo do Qlik Sense.

Os nomes de campos podem ser nomes simples ou entre aspas. Um nome simples começa com um caractere Unicode alfabético e é seguido por qualquer combinação de caracteres alfabéticos ou numéricos ou sublinhados. Nomes entre aspas começam com aspas duplas e contêm qualquer sequência de caracteres. Se um nome entre aspas contiver aspas duplas, essas aspas serão representadas com duas aspas adjacentes.

Os nomes de campos do Qlik Sense fazem distinção entre maiúsculas e minúsculas. Os nomes de campo do banco de dados podem ou não fazer distinção entre maiúsculas e minúsculas, dependendo do banco de dados. Uma consulta do Direct Discovery preserva a caixa de todos os identificadores de campo e alias. No exemplo a seguir, o alias "MyState" é usado internamente para armazenar os dados a partir da coluna do banco de dados"STATEID".

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Isto difere do resultado de um comando SQL Select com um alias. Se o alias não for explicitamente colocado entre aspas, o resultado conterá a caixa padrão da coluna retornada pelo banco de dados de destino. No exemplo a seguir, o comando SQL Select para um banco de dados Oracle cria "MYSTATE," com todas as letras maiúsculas, como o alias interno do Qlik Sense, mesmo que o alias seja especificado como letras maiúsculas e minúsculas. O comando SQL Select usa o nome da coluna retornado pelo banco de dados, que no caso do Oracle é todo em letras maiúsculas.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

Para evitar este comportamento, use o comando LOAD para especificar o alias.

Load STATEID as MyState, STATENAME;
SQL Select STATEID, STATEMENT from STATE_TABLE;
 

Neste exemplo, a coluna "STATEID" é armazenada internamente peloQlik Sense como "MyState".

A maioria das expressões escalares do banco de dados é permitida como especificações de campo. As chamadas de função também podem ser utilizadas nas especificações de campo. As expressões podem conter constantes que sejam boolianas, numéricas ou cadeias de caracteres contidas em aspas simples (aspas simples incorporadas são representadas por aspas simples adjacentes).

Examples:  

DIRECT QUERY
DIMENSION
SalesOrderID, RevisionNumber
MEASURE
SubTotal AS "Sub Total"
FROM AdventureWorks.Sales.SalesOrderHeader;

 

DIRECT QUERY
DIMENSION
"SalesOrderID" AS "Sales Order ID"
MEASURE
SubTotal,TaxAmt,(SubTotal-TaxAmt) AS "Net Total"
FROM AdventureWorks.Sales.SalesOrderHeader;

 

DIRECT QUERY
DIMENSION
(2*Radius*3.14159) AS Circumference,
Molecules/6.02e23 AS Moles
MEASURE
Num1 AS numA
FROM TableName;

 

DIRECT QUERY
DIMENSION
concat(region, 'code') AS region_code
MEASURE
Num1 AS NumA
FROM TableName;

O Direct Discovery não suporta o uso de agregações em comandos LOAD. Se agregações forem utilizadas, os resultados são imprevisíveis. Um comando LOAD como o mostrado a seguir não deve ser usado:

DIRECT QUERY DIMENSION stateid, SUM(amount*7) AS MultiFirst MEASURE amount FROM sales_table;

A SUM não deve estar no comando LOAD.

O Direct Discovery também não suporta funções do Qlik Sense em comandos Direct Query. Por exemplo, a seguinte especificação para um campo DIMENSION resulta em uma falha quando o campo "Mth" é usado como uma dimensão em uma visualização:

month(ModifiedDate) as Mth