Поделиться через


Использование строковых функций

Строковые функции работают практически с любыми объектами языка многомерных выражений. В хранимых процедурах строковые функции применяются в основном для преобразования объекта в строковое представление. Кроме того, строковые функции служат для вычисления строковых выражений над объектами, возвращающих значение.

Самые распространенные строковые функции — 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 следует осторожно. Их использование в определениях вычислений может привести к снижению производительности запросов.

См. также

Справочник

Generate (многомерные выражения)

Name (многомерные выражения)

UniqueName (многомерные выражения)

StrToMember (многомерные выражения)

StrToSet (многомерные выражения)

Основные понятия

Функции (синтаксис многомерных выражений)

Использование хранимых процедур (многомерные выражения)