温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ssas - How to remove all characters after first space for OLAP dimension members
cube mdx olap ssas

ssas - 如何删除OLAP维成员的第一个空格之后的所有字符

发布于 2020-06-29 03:18:38

我有一个维度,该维度包含以下格式的成员100-Sales,200-Purchase等。我想做的是从左开始子串并删除第一个空格后的所有内容。因此,对于两个示例,结果将分别为“ 100”和“ 200”。我之前在sql中使用以下代码语法完成了此操作:LEFT(MyField,CHARINDEX('',MyField)-1)

但是,当我在SSAS中应用相同的逻辑时,它似乎不起作用。LEFT([MyField]。[MyField] .Members,CHARINDEX('',[MyField]。[MyField] .Members)-1)。

有谁知道在SSAS中完成相同操作的语法?

最好的问候,Rubrix

查看更多

提问者
Rubrix
被浏览
10
vldmrrdjcc 2020-04-06 21:46

您应该使用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]

在此处输入图片说明