문자열 함수 사용
문자열 함수는 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 함수를 사용할 때는 주의해야 합니다. 이러한 함수를 계산 정의 내에 사용할 때 쿼리 성능이 저하될 수 있습니다.