使用空白值
空白值代表特定成員、Tuple 或資料格為空白。空白資料格值代表在基礎事實資料表中找不到指定資料格的資料,或指定資料格的 Tuple 代表不適用於 Cube 的成員組合。
附註: |
---|
雖然空白值跟零值不同,但一般會將空白值視為零。 |
以下資訊適用於零值:
- 只有當函數中指定的 Tuple 所識別的資料格為空白時,IsEmpty 函數會傳回 TRUE。否則,此函數會傳回 FALSE。
附註: IsEmpty 函數無法決定成員是否為空白。若要決定成員是否為空白,請使用 IS 運算子。 - 當空白資料格值是任一個數值運算子 (+、-、*、/) 的運算元時,如果其他運算元不是空值,就會將空白資料格值視為零。如果兩個運算元都是空的,則數值運算子會傳回空白資料格值。
- 當空白資料格值是字串串連運算子 (+) 的運算元時,如果其他運算元不是空值,就會將空白資料格值視為空白字串。如果兩個運算元都是空的,則字串串連運算子會傳回空白資料格值。
- 當空的資料格值是任一個比較運算子 (=.<>、>=、<=、>、<) 的運算元時,會根據另一個運算元的資料類型是數值或字串而定,將空的資料格值視為零或空字串。如果兩個運算元都是空白,則會將兩個運算元視為零。
- 當定序數值時,空白資料格值會定序在和零相同的位置。對於空白資料格值和零兩者,空白資料格定序在零的前面。
- 當定序字串值時,空白資料格值會定序在和空白字串相同的位置。對於空白資料格值和空白字串兩者,空定序在空白字串的前面。
處理 MDX 陳述式及 Cube 中的空白值
在多維度運算式 (MDX) 陳述式中,您可以尋找空白值,然後以有效 (也就是說,非空白) 資料在資料格上執行特定計算。在執行計算時,消除空值非常重要,因為某些特定計算 (例如取平均值) 如果將空白資料格值包含在內,結果可能會不正確。
如果基礎事實資料表資料中可能已儲存空白值,而您不希望 Cube 中出現空白資料格值,那麼您應該建立查詢及資料修改陳述式,來消除空白值或聯合空白值到某些其他的值。此外,您可以使用量值上的 [Null 處理] 選項修改 Null,以便將 Null 轉換為 0、轉換為空白值或是在處理期間引發錯誤。
空白值及比較運算子
當資料中有空白值時,邏輯與比較運算子可能會傳回第三種結果 EMPTY,而非只有 TRUE 或 FALSE。這種三重數值邏輯的需要是造成應用程式錯誤的來源。下表大致說明導入空白值比較的結果。
這個表格會顯示將 AND 運算子套用到兩個布林 (Boolean) 運算元的結果。
AND | TRUE | EMPTY | FALSE |
---|---|---|---|
TRUE |
TRUE |
FALSE |
FALSE |
EMPTY |
FALSE |
EMPTY |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
這個表格會顯示將 OR 運算子套用到兩個布林運算元的結果。
OR | TRUE | FALSE |
---|---|---|
TRUE |
TRUE |
TRUE |
EMPTY |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
這個表格會顯示 NOT 運算子如何取消或反轉布林運算子的結果。
套用 NOT 運算子的布林運算式 | 結果 |
---|---|
TRUE |
FALSE |
EMPTY |
EMPTY |
FALSE |
TRUE |
請參閱
參考
MDX 函數參考 (MDX)
MDX 運算子參考 (MDX)
概念
其他資源
定義及設定維度使用方式及維度關聯性
第 5 課:在維度和量值群組之間定義關聯性