Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz używać funkcji łańcuchowych niemal na każdym obiekcie w Multidimensional Expressions (MDX). W procedurach przechowywanych funkcje łańcuchowe używasz głównie do konwersji obiektu na reprezentację ciągu znaków. Używasz także funkcji ciągów do oceny wyrażenia ciągu nad obiektem, aby zwrócić wartość.
Najczęściej stosowanymi funkcjami ciągów to Name i Uniquename. Funkcje te zwracają odpowiednio nazwę i unikalną nazwę obiektu. Najczęściej są używane podczas debugowania obliczeń, aby wykryć, który element funkcja zwraca.
Examples
Poniższe przykładowe zapytania pokazują, jak używać tych funkcji:
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]
Funkcja Generate może być użyta do wykonania funkcji ciągu na każdym członku zbioru i łączenia wyników. To również może być przydatne podczas debugowania obliczeń, ponieważ pozwala wizualizować zawartość zbioru. Poniższy przykład pokazuje, jak go używać w ten sposób:
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]
Inną grupą szeroko stosowanych funkcji łańcuchowych są te, które pozwalają rzucić ciąg zawierający unikalną nazwę obiektu lub wyrażenie, które rozwiązuje się do obiektu, bezpośrednio do obiektu. Poniższe przykładowe zapytanie pokazuje, jak funkcje StrToMember i StrToSet to robią:
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]
Note
Funkcje StrToMember i StrToSet należy stosować ostrożnie. Mogą prowadzić do słabej wydajności zapytań, jeśli są stosowane w definicjach obliczeniowych.