Listas de campos en Direct Discovery

Una lista de campos es una lista separada por comas de especificaciones de campos, fieldname {, fieldname}. Una especificación de campo puede ser un nombre de campo, en cuyo caso se utiliza el mismo nombre para el nombre de la columna de la base de datos y el nombre del campo. O una especificación de campo puede ser un "campo alias," en cuyo caso se da un nombre de campo Qlik Sense a una expresión de base de datos o nombre de columna.

Los nombres de campo pueden ser o nombres simples o nombres entrecomillados. Un nombre simple comienza con un carácter alfabético Unicode y va seguido de cualquier combinación de caracteres alfabéticos o numéricos o guiones bajos. Los nombres entrecomillados comienzan con unas comillas dobles y contienen cualquier secuencia de caracteres. Si un nombre entrecomillado contiene comillas dobles, esas comillas dobles se representan empleando dos signos de dobles comillas adyacentes.

Los nombres de campo en Qlik Sense son sensibles a mayúsculas. Los nombres de campo de las bases de datos pueden ser o no sensibles a mayúsculas, dependiendo de la base de datos concreta. Una consulta Direct Discovery preserva el caso de todos los identificadores de campos y alias. En el siguiente ejemplo, el alias "MyState" se utiliza internamente para almacenar los datos de la columna de la base de datos "STATEID".

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Esto difiere del resultado de una sentencia SQL Select con un alias. Si el alias no se entrecomilla explícitamente, el resultado por defecto es el de una columna devuelta por la base de datos destino. En el ejemplo siguiente, la instrucción SQL Select a una base de datos Oracle crea "MYSTATE," con todas las letras mayúsculas, como el alias interno de Qlik Sense, aunque el alias se especifica como un caso mixto. La sentencia SQL Select utiliza el nombre de columna que devuelve la base de datos, que en el caso de Oracle es todo en mayúsculas.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

Para evitar este comportamiento, use la sentencia LOAD para especificar el alias.

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

En este ejemplo, la columna "STATEID" es almacenada internamente por Qlik Sense como "MyState".

Se permiten la mayoría de expresiones escalares de bases de datos como especificaciones de campos. Las llamadas a funciones también se pueden utilizar en especificaciones de campos. Las expresiones pueden contener constantes que son booleanas, numéricas, o cadenas contenidas en signos de entrecomillado simple (la inclusión de signos de entrecomillado simple viene representada por signos de entrecomillado adyacentes).

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;

Direct Discovery no permite el uso de agregaciones en sentencias LOAD. Si se utilizaran agregaciones, los resultados serían impredecibles. No debe utilizarse una sentencia LOAD como la siguiente:

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

SUM no debe estar en la sentencia LOAD.

Direct Discovery tampoco admite funciones de Qlik Sense en sentencias Direct Query. Por ejemplo, la siguiente especificación para un campo DIMENSION devuelve un error cuando el campo "Mth" se usa como una dimensión en una visualización:

month(ModifiedDate) as Mth