Direct Discovery-veldenlijsten

Een veldenlijst is een door komma's gescheiden lijst met veldspecificaties, fieldname {, fieldname}. Een veldspecificatie kan een veldnaam zijn. In dat geval wordt dezelfde naam gebruikt voor de databasekolomnaam en de veldnaam. Een veldspecificatie kan ook een "veldalias" zijn. In dat geval wordt een Qlik Sense-veldnaam gegeven aan een database-uitdrukking of kolomnaam.

Veldnamen kunnen simpele namen of namen tussen aanhalingstekens zijn. Een simpele naam begint met een alfabetisch Unicode-teken en wordt gevolgd door een combinatie van alfabetische of numerieke tekens of onderstrepingstekens. Namen tussen aanhalingstekens beginnen met een dubbel aanhalingsteken en bevatten een willekeurige reeks van tekens. Als een naam tussen aanhalingstekens dubbele aanhalingstekens bevat, worden deze aanhalingstekens aangegeven door middel van twee dubbele aanhalingstekens naast elkaar.

Qlik Sense-veldnamen zijn hoofdlettergevoelig. Databaseveldnamen kunnen al dan niet hoofdlettergevoelig zijn, afhankelijk van de database. Een Direct Discovery-query behoudt de weergave in hoofdletters of kleine letters van alle veldidentificaties en aliassen. In het volgende voorbeeld wordt de alias "MyState" intern gebruikt voor het opslaan van de gegevens uit de databasekolom "STATEID".

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Dit wijkt af van het resultaat van een SQL Select-opdracht met een alias. Als de alias niet expliciet tussen aanhalingstekens staat, bevat het resultaat de standaardcase van de kolom die is geretourneerd door de doeldatabase. In het volgende voorbeeld, maakt de SQL Select-opdracht aan een an Oracle-database "MYSTATE," met allemaal hoofdletters, als de interne Qlik Sense-alias zelfs al is de alias opgegeven als een combinatie van hoofdletters en kleine letters. De SQL Select-opdracht maakt gebruik van de kolomnaam die wordt geretourneerd door de database, die in het geval van Oracle volledig in hoofdletters is.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

U kunt dit gedrag vermijden door de LOAD-opdracht te gebruiken om de alias op te geven.

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

In dit voorbeeld wordt de kolom "STATEID" intern opgeslagen door Qlik Sense als "MyState".

De meeste scalaire uitdrukkingen in databases zijn toegestaan als veldspecificaties. Functieaanroepen kunnen eveneens worden gebruikt in veldspecificaties. Uitdrukkingen kunnen constanten bevatten die booleaanse, numerieke of tekenreekswaarden zijn tussen enkele aanhalingstekens (ingesloten enkele aanhalingstekens worden aangeduid met twee enkele aanhalingstekens naast elkaar).

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 biedt geen ondersteuning voor het gebruik van aggregaties in LOAD-opdrachten. Als aggregaties worden gebruikt, zijn de resultaten onvoorspelbaar. Een LOAD-opdracht zoals de volgende mag niet worden gebruikt:

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

De SUM mag niet in de LOAD-opdracht worden opgenomen.

Direct Discovery biedt tevens geen ondersteuning voor Qlik Sense-functies in Direct Query-opdrachten. Zo resulteert bijvoorbeeld de volgende specificatie voor een DIMENSION-veld in een fout als het "Mth"-veld wordt gebruikt als een dimensie in een visualisatie:

month(ModifiedDate) as Mth