使用純量表達式

在多維表達式(Multidimensional Expressions,MDX)中,標量表達式是MDX語法中的一個元素,當評估時,會在評估情境中回傳一個單一值。

標量表達式在 MDX 中包含字串、數值和日期表達式。

純量表達式通常用於計算成員定義,因為計算出的成員必須回傳純量值。 以下查詢展示了在度量維度上使用不同類型標量表達式的計算成員範例:

WITH  
MEMBER MEASURES.NumericValue AS 10  
MEMBER MEASURES.NumericExpression AS 10 + 10  
MEMBER MEASURES.NumericExpressionBasedOnMeasure AS [Measures].[Internet Sales Amount] + 10  
MEMBER MEASURES.StringValue AS "10"  
MEMBER MEASURES.ConcatenatedString AS "10" + "10"  
MEMBER MEASURES.StringFunction AS MEASURES.CURRENTMEMBER.NAME  
MEMBER MEASURES.TodaysDate AS NOW()  
SELECT  
{MEASURES.NumericValue,MEASURES.NumericExpression,MEASURES.NumericExpressionBasedOnMeasure,  
MEASURES.StringValue, MEASURES.ConcatenatedString, MEASURES.StringFunction, MEASURES.TodaysDate}  
ON COLUMNS  
FROM [Adventure Works]  

衡量(無論是否計算過)唯一能回傳的資料類型是 OLE 變體類型。 因此,有時你可能需要對特定類型施放一個測度值,才能獲得你預期的行為。 以下查詢說明了這個問題的範例:

WITH  
//Two calculated measures that return strings  
MEMBER MEASURES.NumericString1 AS "10"  
MEMBER MEASURES.NumericString2 AS "10"  
//In this case, the + operator acts to concatenate the strings  
MEMBER MEASURES.Concatenation AS MEASURES.NumericString1 + MEASURES.NumericString2  
//Casting one value to an integer with the CINT function causes the second measure  
//to be treated as an integer too, so that the + operator now acts to add the values  
MEMBER MEASURES.Addition AS CINT(MEASURES.NumericString1) + MEASURES.NumericString2  
SELECT  
{MEASURES.NumericString1,MEASURES.NumericString2,MEASURES.Concatenation,MEASURES.Addition }  
ON COLUMNS  
FROM [Adventure Works]