表達式(MDX)

表達式是由識別碼、值和運算子組成,可以用來評估以得到結果。 資料可在存取或變更資料時用於多種不同地點。 例如,你可以將表達式作為查詢資料的一部分,或作為搜尋條件,尋找符合一組條件的資料。

簡單與複雜表達式

MDX 中的表達式可以是簡單也可以很複雜:

簡單表達式可以是以下其中一種表達式:

常數
常數是一種符號,代表 MDX 中單一且特定的值。 字串、數字和日期值都可以以常數形式呈現。 與數值常數不同,字串和日期常數必須以單引號(')字元來界定。

純量函數
在 MDX 的評估情境中,標量函數會回傳一個單一值。 此區分對於理解 MDX 如何解析純量函數非常重要,因為大多數 MDX 表達式、語句與腳本的評估方式不是針對單一資料元素,而是透過一組資料元素(如儲存格或成員)進行迭代評估。 然而,在評估標量函數時,函數通常只是審查單一資料元素。

物件標識碼
MDX 之所以是物件導向,是因為資料本質上是多維度的。 物件識別碼在 MDX 中被視為簡單的表達式。 欲了解更多識別碼資訊,請參閱識別碼(MDX)。

複合表達式可由這些實體的組合與運算子連接而成。

表達式結果

對於由單一常數、變數、純量函數或欄位名稱組成的簡單表達式,表達式的資料型態、排序、精確度、縮放與值即為參考元素的資料型別、排序、精確度、縮放與值。 由於 MDX 直接支援 OLE VARIANT 資料型別,因此在處理簡單表達式時不應發生強制。

對於複雜的表達式,當使用兩個或多個不同資料型態的簡單表達式時,可能會發生強制現象。

表達式範例

以下查詢展示了定義為簡單表達式的計算度量範例:

WITH
    MEMBER MEASURES.CONSTANTVALUE AS 1
    MEMBER MEASURES.SCALARFUNCTION AS [Date].[Calendar Year].CURRENTMEMBER.NAME
    MEMBER MEASURES.OBJECTIDENTIFIER AS [Measures].[Internet Sales Amount]
SELECT
    { MEASURES.CONSTANTVALUE, MEASURES.SCALARFUNCTION, MEASURES.OBJECTIDENTIFIER } ON 0,
    [Date].[Calendar Year].MEMBERS ON 1
FROM [Adventure Works]

表達式也可以是計算,例如 [Measures].[Discount Amount] * 1.5。 以下範例示範如何在 MDX SELECT 語句中使用計算來定義成員:

WITH   
   MEMBER [Measures].[Special Discount] AS  
   [Measures].[Discount Amount] * 1.5  
SELECT   
   [Measures].[Special Discount] on COLUMNS,  
   NON EMPTY [Product].[Product].MEMBERS  ON Rows  
FROM [Adventure Works]  
WHERE [Product].[Category].[Bikes]  

本節內容

主題 Description
使用立方體與子立方體表達式 定義立方體與子立方體表達式。
使用維度表達式 定義維度表達式。
使用成員表達式 定義成員表達。
使用元組表達式 定義元組表達式。
使用集合表達式 定義集合式。
使用純量表達式 定義標量表達式。
與空值共事 說明什麼是空值,以及這些值如何處理。