Direct Discovery 欄位清單

欄位清單是以逗號分隔的欄位規格清單,fieldname {, fieldname}。欄位規格可以是欄位名稱,在此情況下,相同名稱會用於資料庫資料行名稱和欄位名稱。欄位規格也可以是「欄位別名」,在此情況下,資料庫運算式或資料行名稱會使用 Qlik Sense 欄位名稱。

欄位名稱可以是簡單名稱或引用名稱。簡單名稱以一個字母 Unicode 字元開頭,後面接著字母字元、數字字元或底線的任意組合。引用名稱以一個雙引號開頭,然後包含任何的字元序列。如果引用名稱包含雙引號,這些雙引號會以兩個相鄰的雙引號表示。

Qlik Sense 欄位名稱區分大小寫。資料庫欄位名稱不一定區分大小寫,需視資料庫而定。Direct Discovery 查詢會保留所有欄位識別碼和別名的大小寫。以下範例中,別名 "MyState" 會在內部使用,以儲存來自資料庫資料行 "STATEID" 的資料。

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

這跟使用別名的 SQL Select 陳述式的結果不同。如果別名未明確引用,則結果會包含目標資料庫傳回之資料行的預設大小寫。以下範例中,針對 Oracle 資料庫的 SQL Select 陳述式會建立 "MYSTATE," (全大寫字母) 作為內部 Qlik Sense 別名,雖然指定的別名是大小寫混合的。SQL Select 陳述式會使用資料庫傳回的資料行名稱,在 Oracle 的情況下為全大寫。

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

若要避免這種行為,可使用 LOAD 陳述式來指定別名。

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

在此範例中,Qlik Sense 會將 "STATEID" 資料行內部儲存為 "MyState"

大部分的資料庫純量運算式都允許作為欄位規格。函數呼叫也可用於欄位規格。運算式可包含布林值常數、數值常數,或置於單引號內的字串常數 (內嵌單引號以相鄰的單引號表示)。

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 不支援在 LOAD 陳述式中使用彙總。若使用彙總,結果會無法預期。不得使用下列 LOAD 陳述式︰

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

SUM 不得在 LOAD 陳述式中。

Direct Discovery 也不支援 Qlik Sense 函數用於 Direct Query 陳述式中。例如,當 "Mth" 欄位用作視覺化中的維度時,以下 DIMENSION 欄位的規格會導致失敗︰

month(ModifiedDate) as Mth