首页 > 代码库 > MDX StrtoMember 和 Strtoset 区别

MDX StrtoMember 和 Strtoset 区别

 StrtoMember : string to memeber ,返回字符串表达式中指定的成员,

  Strtoset:  string to set 返回字符串表达式中指定的集

下面是几个例子的写法

1.1、{strtomember(‘[组织架构维度].[上级组织].&[2]‘)}

1.2、{strtoset(‘{[组织架构维度].[上级组织].&[2]}‘)} 

1.1 和 1.2 加入到完整的MDX中,执行出来的结果是一致的,1.1和1.2也是这两个函数最原始的用法。

--------------------------------------分割----------------------------------

2.1、strtoset(‘{[组织架构维度].[上级组织].&[2].children}‘)

2.2、{strtomember(‘[组织架构维度].[上级组织].&[2]‘).children} 

基于上述取子集,在完整的MDX 中,以上两个执行出来的结果是也是一致的。

-------------------------------------------------------------------------

1.1 和1.2 

2.2.1、strtoset(‘{[组织架构维度].[上级组织].&[2],[组织架构维度].[上级组织].&[4]}‘)

2.2.2、strtoset(‘{[组织架构维度].[上级组织].&[2].children,[组织架构维度].[上级组织].&[4].children}‘)

2.2.1 和 2.2.2 strtomember是不支持上面的写法,

-----------------------------------------------------------

对参数的操作:

Strtomember 可以直接作用到@StrParas,@StrPara 是个字符串,@Paras 是个集合{0,1,2} 最少包含一个,StrtoSet 对参数  @Paras 取子成员是不能直接操作的,类似 Strtoset(@Paras).Children 的写法是错误。

 3.1、StrtoMember(@StrPara)

 3.2、StrtoMember(@StrPara).children

 3.3、 Strtoset(@Paras)

 

关于这两个函数的性能,没有过多研究,这方面的资料本身不多,只能一点点在学习中,将自己疑惑的地方都写出来分享下。