使用空白值

空白值代表特定成員、Tuple 或資料格為空白。空白資料格值代表在基礎事實資料表中找不到指定資料格的資料,或指定資料格的 Tuple 代表不適用於 Cube 的成員組合。

ms145626.note(zh-tw,SQL.90).gif附註:
雖然空白值跟零值不同,但一般會將空白值視為零。

以下資訊適用於零值:

  • 只有當函數中指定的 Tuple 所識別的資料格為空白時,IsEmpty 函數會傳回 TRUE。否則,此函數會傳回 FALSE
    ms145626.note(zh-tw,SQL.90).gif附註:
    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)

概念

運算式 (MDX)

其他資源

定義及設定維度使用方式及維度關聯性
第 5 課:在維度和量值群組之間定義關聯性

說明及資訊

取得 SQL Server 2005 協助