返回由多维表达式(MDX)格式字符串指定的成员。
Syntax
StrToMember(Member_Name [,CONSTRAINED] )
Arguments
Member_Name
一个有效的字符串表达式,直接或间接指定成员。
Remarks
StrToMember函数返回字符串表达式中指定的成员。 StrToMember函数通常与用户自定义函数一起使用,用于将外部函数的成员规范返回到MDX语句,或在MDX查询参数化时返回。
当使用限制标志时,成员名称必须直接解析为合格或非限定成员名。 该标志用于降低通过指定字符串发生注入攻击的风险。 如果提供的字符串无法直接解析到合格或不限定的成员名,则会出现以下错误:“STRTOMEMBER函数中CONSTRAIND标志施加的限制已被违反。”
当未使用CONSTRAINED flag时,指定的成员可以直接解析到成员名,也可以解析为MDX表达式,再解析为名称。
为了更好地理解集合和成员之间的区别,请参见《使用集合表达式》和《使用成员表达式》。
示例
以下示例通过 StrToMember 函数返回 Bayern 成员在 State-Province 属性层级中的经销商销售金额度量。 指定的字符串提供了合格成员名称。
SELECT {StrToMember ('[Geography].[State-Province].[Bayern]')}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
以下示例通过 StrToMember 函数返回拜仁成员的经销商销售金额度量。 由于成员名字符串只提供了不限定的成员名,查询返回的是指定成员的第一个实例,该实例位于客户地理层级中的客户维度,且不与经销商销售相交。 最佳实践要求明确指定合格名称,以确保预期效果。
SELECT {StrToMember ('[Bayern]').Parent}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
以下示例通过 StrToMember 函数返回 Bayern 成员在 State-Province 属性层级中的经销商销售金额度量。 成员名字符串提供的解析是限定的成员名。
SELECT {StrToMember('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
以下示例返回因CONSTRAIND标志而出现的错误。 虽然所提供的成员名称字符串包含有效的MDX成员表达式,且该表达式可解析为合格成员名,但CONSTRAINED flag要求成员名字符串中必须有合格或非限定的成员名。
SELECT StrToMember ('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)
ON 0
FROM [Adventure Works]