空集保留旗標
您可以在某些外部集合運算式開頭使用 & 符號 (空集保留旗標),以在使用者分析期間覆寫 隱含選取集合清除。空集保留旗標可讓您變更使用者進行選取時彙總的計算和表示方式,而無需重寫冗長、進階的集合運算式。
例如,在下列集合運算式中,使用了空集保留旗標:
{&<Country*={'Sweden', 'Denmark'}>} {<ProductCategory={'shirts'}>} Sum( Sales )背景
使用條件
空集保留旗標可用於具有下列任一元件的集合運算式中:
-
至少一個內部和一個外部集合運算式
-
兩個或多個外部集合運算式
當您想要避免 隱含選取集合清除 時,請使用空集保留旗標。
隱含選取集合清除
隱式選取集清除是一種內部行為,當使用複雜的集運算式鏈時,有時可能不適合終端使用者分析。隱式選取集清除可能會發生在依據 使用條件 結構化的集運算式中。
不良行為如下:
-
鏈中一個或多個外部集運算式—特別是第一個(或唯一一個)以及除最後一個之外的任何後續外部集運算式—定義資料集。例如︰ Country*={'Sweden', 'Denmark'}>}
-
某些情況會導致這些外部集運算式元件中的一個或多個產生空集。最常見的情況是,在應用程式中進行了衝突的選取。
-
對於空集,這些運算式所定義的集會在運算式評估時被清除。這表示彙總中使用的資料不再縮減為定義的集,而是使用所有資料。
另一方面,在評估期間,任何產生非空集的外部集運算式中定義的集,以及鏈中最後一個外部集運算式,都會受到尊重。
這種行為會導致彙總值可能出乎意料,並可能導致分析不一致。若要略過隱含選取集清除,您可以使用空集保留旗標。請參閱 解決方案:使用空集保留旗標。
解決方案:使用空集保留旗標
使用 & 符號 (空集保留旗標) 來覆寫隱含選取集清除。此旗標可確保鏈結中除了最後一個以外的所有外部集運算式中定義的集不會被清除,而是在整個運算式評估過程中受到尊重。
空集保留旗標提供:
-
當您有想要保持完整而非重寫的進階長集運算式時,可提供彈性和節省時間。
-
能夠變更彙總邏輯以符合進階使用案例。
語法
在外部集運算式中,空集保留旗標會以單一 & 字元放置在運算式的開頭,也就是在集修飾元、識別碼和運算子之前。
範例:
| 運算式 | 沒有空集保留旗標的運算式 |
|---|---|
| {&<Country*={'Sweden', 'Denmark'}>} {<ProductCategory={'shirts'}>} Sum( Sales ) | {<Country={'Sweden'}>} {<ProductCategory={'shirts'}>} Sum (Sales) |
| {& <Year=, Product={XI345}>} {<Region={Europe}>} Sum (Sales) | {<Year=, Product={XI345}>} {<Region={Europe}>} Sum (Sales) |
詳細範例
如需更多深入資訊,請參閱多個外部和內部集合運算式的鏈結。