Load

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 ]

引數:  

引數 描述
distinct distinct是應該載入第一筆重複記錄時使用的述詞。
fieldlist fieldlist ::= ( * | field {, field } )

要載入的欄位清單。使用 *做為欄位清單表示表格中的所有欄位。

field ::= ( fieldref | expression ) [as aliasname ]

欄位定義必須一律包含常值、現有欄位的參考或運算式。

fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )

fieldname是與表格中欄位名稱相同的文字。請注意,欄位名稱如果包含空格則必須以一般雙引號或方括弧括住。有時候不一定會有檔案名稱。這時請用不同的標記法:

@fieldnumber代表分隔表格檔案中的欄位編號。其必須是正整數,前面加上 "@"。編號一律會從 1 開始,一直編號到欄位的數目為止。

@startpos:endpos代表欄位在固定長度記錄的檔案中開始和結束的位置。這些位置必須是正整數。這兩個編號前面必須加上 "@",並且以冒號分隔。編號一律會從 1 開始,一直編號到位置的數目為止。在最後一個欄位中,n用作結束位置。

  • 如果 @startpos:endpos後面緊接著 IU 字元,會將讀取的位元組解譯為二元帶正負號 (I) 或不帶正負號 (U) 的整數 (Intel 位元組順序)。讀取的位置編號必須是 1、2 或 4。
  • 如果 @startpos:endpos後面緊接著R 字元,會將讀取的位元組解譯為二進位實數 (IEEE 32 位元或 64 位元浮點)。讀取的位置編號必須是 4 或 8。
  • 如果 @startpos:endpos後面緊接著 B 字元,會按照 COMP-3 標準將讀取的位元組解譯為BCD (Binary Coded Decimal) 編號。可指定任何數目的位元組。

expression可以是以同一個表格中的其他一或數個欄位為基礎的數值函數或字串函數。如需進一步資訊,請參閱運算式的語法。

as用來指派欄位的新名稱。

from

如果應該從檔案載入資料,可使用 from

file ::= [ path ] filename

  • 絕對路徑

    範例: c:\data\

  • QlikView文件路徑的相對路徑。

    範例: data\

  • 指向網際網路位置或內部網路位置的 URL 位址 (HTTPFTP)。例如,如果 URL 包含空格字元,則必須為 URL 編碼。

    範例: http://www.qlik.com

    範例: http://www.enterprise.com/project%20files(http://www.enterprise.com/project files)

如果省略路徑,QlikView將在Directory 陳述式指定的目錄中搜尋該檔案。如果沒有任何 Directory陳述式,QlikView 將在工作目錄中搜尋,工作目錄通常是 QlikView 檔案所在的目錄。

備註: QlikViewServer 安裝中,預設工作目錄是C:\ProgramData\QlikTech\Documents。可以在 QlikView Management Console中修改預設工作目錄。

filename可包含標準 DOS 萬用字元 (*?)。這將載入指定的目錄中所有相符的檔案。

format-spec ::= ( fspec-item { , fspec-item } )

格式規格包含括弧內數個格式規格項目的清單。

請參閱: Directory

請參閱: From

from_field 如果應該從先前載入的欄位載入資料,可使用 from_field

fieldassource::=(tablename, fieldname)

此欄位是先前載入的 tablenamefieldname 名稱。

format-spec ::= ( fspec-item {, fspec-item } )

格式規格包含括弧內數個格式規格項目的清單。

inline 如果應該在指令碼中輸入資料,而不是從檔案載入資料,可使用 inline

data ::= [ text ]

透過inline子句輸入的資料必須以雙引號或方括弧括住。這些之間的文字將以檔案內容的相同方式加以解譯。因此,在文字檔中要插入新行的位置,也應該在 inline子句的文字中插入新行,也就是在輸入指令碼時按下 Enter 鍵。

format-spec ::= ( fspec-item {, fspec-item } )

格式規格包含括弧內數個格式規格項目的清單。

resident 如果應該從先前載入的表格載入資料,可使用 resident

table label是建立原始表格的 LOADSELECT 陳述式之前的標籤。標籤結尾應該加上冒號。

請參閱: 從先前載入的表格載入資料

請參閱: 表格標籤

autogenerate 如果 QlikView應該自動產生資料,可使用 autogenerate

size ::= number

Number是表示要產生記錄筆數的整數。欄位清單不可包含從資料庫要求資料的運算式。在運算式中只能使用常數和無參數函數 (例如 rand()recno())。

where where是指明選項中是否應該包含記錄的子句。如果 criterionTrue,將包含選項。

criterion是邏輯運算式。

while

while是指明是否應該重複讀取記錄所用的子句。只要 criterionTrue,就會讀取相同的記錄。若要使用,while子句一般必須包含 IterNo( ) 函數。

criterion是邏輯運算式。

group_by

group by是定義應該對哪些欄位彙總 (分組) 資料所用的子句。彙總欄位應該以某些方式包含在載入的運算式中。只有彙總欄位才能在載入的運算式中的彙總函數之外使用。

groupbyfieldlist ::= (fieldname { ,fieldname } )

order_by order byload 陳述式處理常駐表格記錄前將這些記錄排序所用的子句。常駐表格可按照一或多個欄位以遞增或遞減順序排序。排序主要以數值進行,其次以國家排序順序進行。只有在資料來源是常駐表格時,才能使用此子句。

排序欄位可指定常駐表格按照哪些欄位排序。可以按照常駐表格的名稱或編號 (第一個欄位的編號是 1) 指定欄位。

orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] }

sortorderasc 表示遞增,以desc 表示遞減。如果未指定 sortorder,將會採用 asc

fieldnamepathfilenamealiasname 是指出個別名稱代表什麼意義的文字字串。來源表格的任何欄位均可做為fieldname。不過,透過 as 子句 (aliasname) 建立的欄位若不在範圍內,無法在同一個 load 陳述式內使用。

注意!如果並未透過 frominlineresidentfrom_fieldautogenerate 子句指定資料的來源,將從後面的 SELECTLOAD 陳述式結果載入資料。後面的陳述式不應該有前置詞。

請參閱: 前置 LOAD

範例:  

另請參閱: