集合修飾詞

集合可透過額外或變更的選項加以修改。這樣的修改可編寫於集合運算式中。

修飾詞的組成為一或數個欄位名稱、各個欄位的後面都加上要對該欄位做出的選項,然後全部括在角括弧 <> 內。例如:<Year={2007,2008},Region={US}>。欄位名稱和欄位值可照例以引號括住,例如 <[Sales Region]={’West coast’, ’South America’}>

集合修飾詞可修改前面的集合識別碼選擇。如果沒有引用集合識別碼,則目前選項狀態是隱含的。

有多種方法可定義選項:

  • 以其他欄位為基礎
  • 以元素集合 (修飾詞中的欄位值清單) 為基礎
  • 強制排除

以下小節中說明了這些方法。

以其他欄位為基礎

簡單的方式是,選項會以另一個欄位的選取值為基礎,例如 <OrderDate = DeliveryDate>。此修飾詞會取用 DeliveryDate 的選取值,然後將其套用為 OrderDate 的選項。如果有許多相異值 (超過幾百個),則此運算會需要大量的 CPU,應避免使用。

根據元素設定

集合運算式的常見情況是會以括在大括弧內的欄位值清單為基礎。值以逗號分隔,例如 <Year = {2007, 2008}>。大括弧是用於定義元素集合,其中的元素可為明確的欄位值或欄位值的搜尋。

除非列出的值包含空格或特殊字元,否則不需要引號。列出的值會正好符合欄位值。此比較不區分大小寫。

若列出的值包含空格或特殊字元,或者若您想使用萬用字元,則您需要使用引號將值括起來。若列出的值是明確的欄位值,應使用單引號。將依照列出的值與個別欄位值之間的情況區分大小寫。

雙引號應用於搜尋,亦即包含萬用字元的字串或以關係運算子或等號為開頭。例如,<Ingredient = {"*Garlic*"}> 將會選取所有包含字串 ’Garlic’ 的部分。雙引號可用方括弧取代,例如 <Ingredient = {[*Garlic*]}>。雙引號也可用重音符號取代,例如 <Ingredient = {`*Garlic*`}>。搜尋不區分大小寫。

備註:

在先前版本的 Qlik Sense 中,沒有區分單引號和雙引號,所有引號內的字串都視為搜尋。為維持向下相容性,透過舊版 Qlik Sense 建立的應用程式將會依照先前版本的方式繼續運作。透過 Qlik Sense November 2017 或更高版本建立的應用程式將會顧及兩種引號類型之間的差異。

強制排除

最後,處於 AND 模式的欄位也可能會強制排除。若要強制排除特定的欄位值,則需要在欄位名稱前使用 “~”。

備註: 僅在使用 Qlik 引擎 API 時支援 AND 模式。

Examples and results:  

範例 結果
sum( {1<Region= {USA} >} Sales ) 會傳回 USA 區域的銷售額,忽略目前選項
sum( {$<Region = >} Sales ) 會傳回目前選項的銷售額,但移除「Region」選項
sum( {<Region = >} Sales )

會立即傳回與上例相同的結果。當省略要修改的集合時,會採用 $

備註: 注意!前兩個範例中的語法會解譯為在「Region」中「無選項」,亦即有可能是指定其他選項的所有區域。這不等同於語法 <Region = {}> (或隱含會產生空元素集合之等號右側的其他任何文字),因為會解譯為無地區。
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) 會傳回目前選項的銷售額,但包含「Year」和「Region」兩者中的新選項。
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Ingredient 欄位處於 AND 模式下。

會傳回目前選項的銷售額,但強制排除包含字串「garlic」的所有部分。

sum( {$<Year = {“2*”}>} Sales ) 會傳回目前選項的銷售額,但為在欄位「Year」中選取以數字「2」開頭的所有年份 (亦即很有可能是 2000 年和之後的年份)。
sum( {$<Year = {“2*”,”198*”}>} Sales ) 與上例相同,但現在 1980 年代也包括在選項中。
sum( {$<Year = {“>1978<2004”}>} Sales ) 傳回目前選項的銷售額,但同時使用數字搜尋,以區分要進行加總的銷售額的年份範圍。