跳到主要內容 跳至補充內容

集合修飾詞

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

修飾詞的組成為一或數個欄位名稱、各個欄位的後面都加上要對該欄位做出的選項,然後全部括在 < 和 > 內。例如:<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*`}>。搜尋不區分大小寫。

資訊備註

在先前版本的 QlikView 中,沒有區分單引號和雙引號的差異,所有引號內的字串皆作為搜尋來處理。為了維持回溯相容性,透過舊版 QlikView 建立的文件將會依照在先前版本中的運作方式繼續運作。透過 QlikView 2017 年 11 月或更高版本建立的文件,將會尊重兩種引號類型之間的差異。

強制排除

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

範例與結果:  

範例結果
範例 結果
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 ) 傳回目前選項的銷售額,但同時使用數字搜尋,以區分要進行加總的銷售額的年份範圍。
資訊備註

若您想要強制排除文字物件等物件中的特定欄位值,必須修改指令碼語法。例如,若您的指令碼陳述式如下:

=count({<ANDActor=>}DISTINCT Title)

請修改如下:

=count({<~ANDActor=, ANDActor=>} DISTINCT Title)

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!

加入分析現代化計畫

Remove banner from view

透過分析現代化程式進行現代化而不犧牲寶貴的 QlikView 應用程式。 按一下這裡 取得更多資訊或聯繫: ampquestions@qlik.com