如何删除 OLAP 维度成员的第一个空格后的所有字符
Posted
技术标签:
【中文标题】如何删除 OLAP 维度成员的第一个空格后的所有字符【英文标题】:How to remove all characters after first space for OLAP dimension members 【发布时间】:2020-04-06 10:20:17 【问题描述】:我有一个由具有以下格式的成员组成的维度 100 - 销售,200 - 购买等。我想做的是从左侧开始子字符串并删除第一个空格之后的所有内容。因此,这两个示例的结果将是“100”和“200”。我之前使用以下代码语法在 sql 中完成了此操作: LEFT(MyField, CHARINDEX('', MyField) - 1)
但是当我在 SSAS 中应用相同的逻辑时,它似乎不起作用。 LEFT([MyField].[MyField].Members,CHARINDEX('',[MyField].[MyField].Members)-1).
有人知道在 SSAS 中完成同样事情的语法吗?
最好的问候, 红宝石
【问题讨论】:
【参考方案1】:你应该使用 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]
【讨论】:
以上是关于如何删除 OLAP 维度成员的第一个空格后的所有字符的主要内容,如果未能解决你的问题,请参考以下文章
OLAP SSAS MDX 如何获取先前选定/可见日期的度量值