Zu Hauptinhalt springen

Direct Discovery-Feldlisten

Eine Feldliste ist eine kommagetrennte Liste von Feldspezifikationen, fieldname {, fieldname}. Eine Feldspezifikation kann ein Feldname sein: In diesem Fall wird derselbe Name für den Datenbankspaltennamen und den Feldnamen verwendet. Oder eine Feldspezifikation kann ein Feldalias sein: In diesem Fall erhält eine Datenbankformel oder ein Spaltenname einen Qlik Sense-Feldnamen.

Feldnamen können einfache Namen sein oder in Anführungszeichen gesetzt werden. Ein einfacher Name beginnt mit einem alphabetischen Unicode-Zeichen, gefolgt von einer beliebigen Kombination aus alphabetischen oder numerischen Zeichen oder Unterstrichen. Namen in Anführungszeichen beginnen mit einem doppelten Anführungszeichen und können eine beliebige Zeichenfolge enthalten. Wenn ein Name in Anführungszeichen doppelte Anführungszeichen enthält, werden diese durch zwei aufeinanderfolgende doppelte Anführungszeichen dargestellt.

Bei Qlik Sense-Feldnamen wird zwischen Groß- und Kleinschreibung unterschieden. Bei Datenbankfeldnamen wird je nach Datenbank zwischen Groß- und Kleinschreibung unterschieden oder nicht. Bei einer Direct Discovery-Abfrage wird die Groß- bzw. Kleinschreibung aller Feldidentifikatoren und Aliase beibehalten. Im nachfolgenden Beispiel wird der Alias "MyState" intern für die Speicherung der Daten aus der Datenbankspalte "STATEID" verwendet.

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Das unterscheidet sich vom Ergebnis eines SQL Select-Befehls mit einem Alias. Wenn der Alias nicht explizit in Anführungszeichen gesetzt wird, enthält das Ergebnis die durch die Zieldatenbank ausgegebene Standardschreibung der Spalte. Im folgenden Beispiel erzeugt der SQL Select-Befehl an eine Oracle-Datenbank "MYSTATE," als internen Qlik Sense-Alias in Großbuchstaben, obwohl der Alias in gemischter Schreibung angegeben wurde. Der SQL Select-Befehl greift auf den Spaltennamen zurück, der von der Datenbank ausgegeben wurde, im Fall von Oracle also Großbuchstaben.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

Um dies zu vermeiden, verwenden Sie den LOAD-Befehl, um den Alias festzulegen.

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

In diesem Beispiel wird die "STATEID"-Spalte intern von Qlik Sense als "MyState" gespeichert.

Die meisten skalaren Formeln in Datenbanken sind als Feldspezifikationen zulässig. In Feldspezifikationen können auch Funktionsaufrufe verwendet werden. Formeln können boolesche, numerische Konstanten oder Konstanten in Form von Strings in einfachen Anführungszeichen enthalten (eingebettete einfache Anführungszeichen werden durch danebenliegende einfache Anführungszeichen dargestellt).

Beispiele:  

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 unterstützt nicht die Verwendung von Aggregierungen in LOAD-Befehlen. Bei der Verwendung von Aggregierungen sind die Ergebnisse unvorhersehbar. LOAD-Befehle wie die folgenden sollten nicht verwendet werden:

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

Die SUM sollte nicht in den LOAD-Befehl eingebunden werden.

Direct Discovery unterstützt auch nicht die Verwendung von Qlik Sense-Funktionen in Direct Query-Befehlen. Beispielsweise führt die folgende Spezifikation eines DIMENSION-Feldes zum fehlerhaften Ergebnis, wenn das Feld "Mth" als Dimension in einer Visualisierung verwendet wird:

month(ModifiedDate) as Mth

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!