指令碼一般陳述式
一般陳述式通常用於以某種方式操縱資料。這些陳述式可在指令碼中撰寫為任意行數,但是一定必須以分號 (";") 終止。
所有的指令碼關鍵字皆可以小寫和大寫字元的任意組合輸入。但用於陳述式中的欄位和變數名稱則會區分大小寫。
使用每個函數中的下拉式功能表,以查看每個函數的簡要描述及語法。按一下語法描述中的函數名稱,以取得進一步詳細資料。
alias 陳述式用來設定別名,只要欄位出現在下列指令碼,就會按照這個陳述式重新命名欄位。
Alias fieldname as aliasname {,fieldname as aliasname}
此陳述式會針對在指令碼執行期間出現的每個相異的評估值,建立唯一的整數值。
Autonumber fields [Using namespace] ]
binary 陳述式用來載入其他 QlikView 文件的資料,包括 Section Access 資料。
Binary [path] filename
可用來顯示資料庫或試算表的表格註解 (中繼資料)。
comment-table tablelist using mapname
comment-table tablename with comment
CONNECT 陳述式用來定義透過 OLE DB/ODBC 介面對一般資料庫的 Qlik Sense 存取。若是 ODBC,首先必須使用 ODBC 管理員指定資料來源。
ODBC CONNECT TO connect-string [ ( access_info ) ]
OLEDB CONNECT TO connect-string [ ( access_info ) ]
CUSTOM CONNECT TO connect-string [ ( access_info ) ]
LIB CONNECT TO connection
Declare 陳述式用來建立欄位定義,您可以從中定義欄位或函數之間的關係。一組欄位定義可用來自動產生衍生的欄位,它們可用作維度。例如,您可以建立行事曆定義,並用以從日期欄位中產生相關維度,例如年份、月份、週和日。
definition_name:
Declare [Field[s]] Definition [Tagged tag_list ]
[Parameters parameter_list ]
Fields field_list
[Groups group_list ]
<definition name>:
Declare [Field][s] Definition
Using <existing_definition>
[With <parameter_assignment> ]
Derive 陳述式用來根據使用 Declare 陳述式建立的欄位定義以產生衍生的欄位。您可以指定要為其衍生欄位的資料欄位,或者根據欄位標記明確或隱含地衍生它們。
Derive [Field[s]] From [Field[s]] field_list Using definition
Derive [Field[s]] From Explicit [Tag[s]] (tag_list) Using definition
Derive [Field[s]] From Implicit [Tag[s]] Using definition
DIRECT QUERY 陳述式允許您透過使用 Direct Discovery 功能的 ODBC 或 OLE DB 連線,來存取表格。
direct-query [path]
Directory 陳述式會在後續 LOAD 陳述式中定義要在其中尋找資料檔的目錄,直到發出新的 Directory 陳述式為止。
Directory [path]
Disconnect 陳述式會終止目前 ODBC/OLE DB/自訂連線。此陳述式是選用的。
透過 drop field 陳述式,可以隨時在指令碼執行期間,從資料模型和記憶體捨棄一或數個 Qlik Sense 欄位。在 drop field 陳述式後移除表格的「相異」屬性。
drop-field fieldname [ , fieldname2 ...] [from tablename1 [ , tablename2 ...]]
drop fields fieldname [ , fieldname2 ...] [from tablename1 [ , tablename2 ...]]
透過 drop table 陳述式,可以隨時在指令碼執行期間,從資料模型和記憶體捨棄一或數個 Qlik Sense 內部表格。
drop-table tablename [, tablename2 ...]
drop tables[ tablename [, tablename2 ...]
Execute 陳述式用來在 Qlik Sense 載入資料時,執行其他程式。例如,進行必要的轉換。
Execute commandline
FlushLog 陳述式會強制 Qlik Sense 將指令碼緩衝的內容寫入至指令碼記錄檔。
force 陳述式會強制 Qlik Sense 將後續 LOAD 及 SELECT 陳述式的欄位值解譯為僅以大寫字母、僅小寫字母、字首一律大寫或大小寫混合 (混用) 來寫入。此陳述式能夠讓經過不同轉換的表格之中的欄位值產生關聯。
Force ( capitalization | case upper | case lower | case mixed )
LOAD 陳述式可以從檔案、指令碼中定義的資料、先前載入的表格、網頁、後續 SELECT 陳述式的結果或自動產生的資料來載入欄位。 這也可以從分析連線載入資料。
Load [ distinct ] *fieldlist
[( from file [ format-spec ] |
from_field fieldassource [format-spec]
inline data [ format-spec ] |
resident table-label |
autogenerate size )]
[ where criterion | while criterion ]
[ group_by groupbyfieldlist ]
[order_by orderbyfieldlist ]
[extension pluginname.functionname(tabledescription)]
let 陳述式是 set 陳述式的補集,用來定義指令碼變數。相對於 set 陳述式,let 陳述式會先在指令碼執行時間評估 '=' 右邊的運算式,然後才將運算式指派給變數。
Let variablename=expression
使用 Loosen Table 陳述式,可以在指令碼執行期間將一或多個 Qlik Sense 內部資料表明確宣告為鬆散耦合表格。當表格鬆散耦合時,會移除表格中欄位值之間的所有關聯。可以透過將鬆散耦合表格的每個欄位作為獨立、未連接的表格載入,從而實現類似的效果。在測試以暫時隔離資料結構的不同部分時,鬆散耦合可能有用。鬆散耦合的表格可以在表格檢視器中使用虛線進行識別。在指令碼中使用一或多個 Loosen Table 陳述式將造成 Qlik Sense 忽略指令碼執行前使表格成為鬆散耦合表格的任何設定。
tablename [ , tablename2 ...]
Loosen Tables tablename [ , tablename2 ...]
map ... using 陳述式用來將特定欄位值或運算式對應到特定對應表的值。對應表是透過 Mapping 陳述式建立的。
Map *fieldlist Using mapname
NullAsNull 陳述式會關閉先前由 NullAsValue 陳述式設定將 NULL 變成字串值的轉換。
NullAsNull *fieldlist
NullAsValue 陳述式會指定應該將出現 NULL 的哪些欄位轉換為值。
NullAsValue *fieldlist
Qualify 陳述式用來切換限定欄位名稱,亦即欄位名稱將獲得表格名稱做為前置詞。
Qualify *fieldlist
rem 陳述式用來將備註或註解插入指令碼中,或暫時停用指令碼陳述式,但不移除陳述式。
Rem string
此指令碼函數會在載入一或多個現有 Qlik Sense 欄位之後,為其重新命名。
rename-field (using mapname | oldname to newname{ , oldname to newname })
Rename Fields (using mapname | oldname to newname{ , oldname to newname })
此指令碼函數會在載入一或多個現有 Qlik Sense 內部表格之後,為其重新命名。
rename-table (using mapname | oldname to newname{ , oldname to newname })
Rename Tables (using mapname | oldname to newname{ , oldname to newname })
透過 section 陳述式,可以定義是否應該將後續的 LOAD 和 SELECT 陳述式視為資料或存取權限的定義。
Section (access | application)
透過標準 SQL SELECT 陳述式可選取來自 ODBC 資料來源或 OLE DB 提供者的欄位。然而,是否接受 SELECT 陳述式取決於所使用的 ODBC 驅動程式或 OLE DB 提供者。
Select [all | distinct | distinctrow | top n [percent] ] *fieldlist
From tablelist
[Where criterion ]
[Group by fieldlist [having criterion ] ]
[Order by fieldlist [asc | desc] ]
[ (Inner | Left | Right | Full)Join tablename on fieldref = fieldref ]
set 陳述式用來定義指令碼變數。這些可用來取代字串、路徑、磁碟機等。
Set variablename=string
sleep 陳述式會暫停所指定時間的指令碼執行。
Sleep n
SQL 陳述式可讓您透過 ODBC 或 OLE DB 連線傳送任意 SQL 命令。
SQL sql_command
sqlcolumns 陳述式會傳回一組描述 ODBC 或 OLE DB 資料來源資料行的欄位,該欄位已經進行 connect。
sqltables 陳述式會傳回一組描述 ODBC 或 OLE DB 資料來源表格的欄位,該欄位已經進行 connect。
sqltypes 陳述式會傳回一組描述 ODBC 或 OLE DB 資料來源類型的欄位,該欄位已經進行 connect。
用來代表資料庫中某個欄位之所有值集合的字串可以透過 star 陳述式進行設定。會影響後續的 LOAD 與 SELECT 陳述式。
Star is [ string ]
Store 陳述式建立 QVD、Parquet、CSV 或 TXT 檔案。
Store [ *fieldlist from] table into filename [ format-spec ];
此指令碼陳述式提供將標記指派至一個或多個欄位或表格的方式。如果已嘗試將欄位或表格標記為不呈現在應用程式中,則會忽略該標記。若發現欄位或標記名稱衝突,會使用最後一個值。
Tag[field|fields] fieldlist with tagname
Tag [field|fields] fieldlist using mapname
Tag table tablelist with tagname
使用 trace 陳述式可將字串寫入指令碼執行進度視窗以及指令碼記錄檔。在偵錯方面非常有幫助。使用在 trace 陳述式前計算的 $-expansions 變數,即可自訂訊息。
Trace string
Unmap 陳述式會為後續載入的欄位,停用先前 Map … Using 陳述式指定的欄位值對應。
Unmap *fieldlist
Unqualify 陳述式用來關閉先前由 Qualify 陳述式開啟的欄位名稱限定。
Unqualify *fieldlist
此指令碼陳述式提供從欄位或表格移除標記的方式。如果已嘗試將欄位或表格取消標記為不呈現在應用程式中,則會忽略該取消標記。
Untag[field|fields] fieldlist with tagname
Tag [field|fields] fieldlist using mapname
Tag table tablelist with tagname