如何删除 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 如何获取先前选定/可见日期的度量值

如何在 Excel 中的非度量维度(帐户)中显示比率成员

OLAP:为啥事实表和维度表之间的所有外键都应该是代理键?

删除空格后的所有字符串[关闭]

SQL Analysis Services OLAP TIME 维度

ultraedit 如何删除空格后的内容