我有一个维度,该维度包含以下格式的成员100-Sales,200-Purchase等。我想做的是从左开始子串并删除第一个空格后的所有内容。因此,对于两个示例,结果将分别为“ 100”和“ 200”。我之前在sql中使用以下代码语法完成了此操作:LEFT(MyField,CHARINDEX('',MyField)-1)
但是,当我在SSAS中应用相同的逻辑时,它似乎不起作用。LEFT([MyField]。[MyField] .Members,CHARINDEX('',[MyField]。[MyField] .Members)-1)。
有谁知道在SSAS中完成相同操作的语法?
最好的问候,Rubrix
您应该使用INSTR函数(而不是CHARINDEX),因此在Adventure Works数据库中类似这样:
with member Measures.[Short Name]
as
left("Aaron A. Allen", instr("Aaron A. Allen", " " ) - 1)
select Measures.[Short Name] on 0,
[Customer].[Customer].members on 1
from [Adventure Works];
或像这样:
with member Measures.[Customer Short Name]
as
left([Customer].[Customer].currentmember.MEMBER_CAPTION, instr([Customer].[Customer].currentmember.MEMBER_CAPTION, " " ) - 1)
select {Measures.[Customer Short Name], [Measures].[Customer Count]} on 0,
[Customer].[Customer].members on 1
from [Adventure Works]