Listy pól aplikacji Direct Discovery

Lista pól jest rozdzielaną przecinkami listą specyfikacji pól fieldname {, fieldname}. Specyfikacja pola może być nazwą pola. W takiej sytuacji ta sama nazwa będzie używana jako nazwa kolumny bazy danych i nazwa pola. Specyfikacja pola może być też aliasem pola. W takiej sytuacji wyrażeniu bazy danych lub kolumnie jest nadawana nazwa pola Qlik Sense.

Nazwy pól mogą być nazwami prostymi lub nazwami cytowanymi. Nazwa prosta zaczyna się od alfabetycznego znaku Unicode, a po niej następuje dowolna kombinacja znaków alfabetu, znaków cyfr lub podkreśleń. Nazwy cytowane zaczynają się od znaku podwójnego cudzysłowu i zawierają dowolną sekwencję znaków. Jeśli nazwa cytowana zawiera znaki podwójnego cudzysłowu, te znaki są reprezentowane przez dwa sąsiadujące znaki podwójnego cudzysłowu.

W nazwach pól Qlik Sense rozróżniana jest wielkość liter. W nazwach pól bazy danych wielkość liter może być uwzględniana lub nie w zależności od bazy danych. Zapytanie Direct Discovery zachowuje wielkość liter wszystkich identyfikatorów i aliasów pól. W poniższym przykładzie alias "MyState" jest używany wewnętrznie w celu przechowywania danych z kolumny "STATEID" bazy danych.

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

To różni się od wyniku instrukcji SQL Select z aliasem. Jeśli alias nie jest cytowany jawnie, wynik zawiera domyślną wielkość liter kolumny zwracanej przez docelową bazę danych. W poniższym przykładzie instrukcja SQL Select do bazy danych Oracle tworzy "MYSTATE," z wszystkimi wielkimi literami jako wewnętrzny alias Qlik Sense, mimo że alias jest pisany literami o różnej wielkości. Instrukcja SQL Select używa zwróconej przez bazę danych nazwy kolumny, która w przypadku bazy danych Oracle cała jest pisana wielkimi literami.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

W celu uniknięcia takiego zachowania należy użyć instrukcji LOAD, aby określić alias.

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

W tym przykładzie kolumna "STATEID" jest zapisywana wewnętrznie w aplikacji Qlik Sense jako "MyState".

Wyrażenia skalarne bazy danych mogą być w większości stosowane jako specyfikacje pól. Wywołania funkcji również mogą być używane w specyfikacjach pól. Wyrażenia mogą zawierać stałe logiczne, liczbowe i w postaci ciągów zawartych w pojedynczych cudzysłowach (osadzone pojedyncze cudzysłowy są reprezentowane przez sąsiadujące znaki pojedynczych cudzysłowów).

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;

Aplikacja Direct Discovery nie obsługuje użycia agregacji w instrukcjach LOAD. Użycie agregacji może spowodować, że wyniki będą nieprzewidywalne. Instrukcja LOAD, taka jak poniższa, nie powinna być używana:

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

Funkcja SUM nie powinna znajdować się w instrukcji LOAD.

Aplikacja Direct Discovery nie obsługuje także funkcji Qlik Sense w instrukcjach Direct Query. Na przykład poniższa specyfikacja dla pola DIMENSION kończy się błędem, gdy pole "Mth" jest używane jako wymiar w wizualizacji:

month(ModifiedDate) as Mth