共用方式為


使用字串函數

多維度運算式 (MDX) 中每個物件幾乎都可以使用字串函數。在預存程序中,字串函數主要用來將物件轉換為字串表示法。您也可以使用字串函數在物件上評估字串運算式,以傳回一個值。

最常用的字串函數是 Name 和 Uniquename。這些函數會分別傳回某個物件的名稱和唯一名稱。它們大多用於偵錯計算來找出函數所傳回的成員。

範例

下列範例查詢會示範如何使用這些函數:

WITH

//Returns the name of the current Product on rows

MEMBER [Measures].[ProductName] AS [Product].[Product].CurrentMember.Name

//Returns the uniquename of the current Product on rows

MEMBER [Measures].[ProductUniqueName] AS [Product].[Product].CurrentMember.Uniquename

//Returns the name of the Product dimension

MEMBER [Measures].[ProductDimensionName] AS [Product].Name

SELECT {[Measures].[ProductName],[Measures].[ProductUniqueName],[Measures].[ProductDimensionName]}

ON COLUMNS,

[Product].[Product].MEMBERS ON ROWS

FROM [Adventure Works]

Generate 函數可在集合的每一個成員上用來執行字串函數及串連結果。這對於偵錯計算也很實用,因為它可讓您將集合的內容視覺化。下列範例示範這種方式的作法:

WITH

//Returns the names of the current Product and its ancestors up to the All Member

MEMBER [Measures].[AncestorNames] AS

GENERATE(

ASCENDANTS([Product].[Product Categories].CurrentMember)

, [Product].[Product Categories].CurrentMember.Name, ", ")

SELECT

{[Measures].[AncestorNames]}

ON COLUMNS,

[Product].[Product Categories].MEMBERS ON ROWS

FROM [Adventure Works]

另一組常用的字串函數就是那些可讓您將包含物件或運算式 (可解析成物件) 之唯一名稱的字串轉換成物件本身的函數。下列範例查詢示範 StrToMember 和 StrToSet 函數如何進行這項處理:

SELECT

{StrToMember("[Measures].[Inter" + "net Sales Amount]")}

ON COLUMNS,

StrToSet("{

[Product].[Product Categories].[Category].&[3],

[Product].[Product Categories].[Product].&[477],

[Product].[Product Categories].[Product].&[788],

[Product].[Product Categories].[Product].&[708],

[Product].[Product Categories].[Product].&[711]

}")

ON ROWS

FROM [Adventure Works]

[!附註]

使用 StrToMember 和 StrToSet 函數應該要很小心。因為如果在計算定義內使用它們,可能會產生極差的查詢效能。