Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете использовать строковые функции почти на каждом объекте в многомерных выражениях (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 следует использовать с осторожностью. Они могут привести к низкой производительности запросов, если используются в определениях вычислений.