如何删除 OLAP 维度成员的第一个 space 之后的所有字符
How to remove all characters after first space for OLAP dimension members
我有一个由具有以下格式的成员组成的维度 100 - 销售,200 - 采购等。我想做的是从左边开始子字符串并删除第一个 space 之后的所有内容.因此,对于这两个示例,结果将是“100”和“200”。我之前在 sql 中使用以下代码语法完成了此操作:
左(我的字段,CHARINDEX('',我的字段)- 1)
但是当我在 SSAS 中应用相同的逻辑时,它似乎不起作用。
LEFT([MyField].[MyField].Members,CHARINDEX('',[MyField].[MyField].Members)-1).
有人知道在 SSAS 中完成同样事情的语法吗?
此致,
规则
您应该使用 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]
我有一个由具有以下格式的成员组成的维度 100 - 销售,200 - 采购等。我想做的是从左边开始子字符串并删除第一个 space 之后的所有内容.因此,对于这两个示例,结果将是“100”和“200”。我之前在 sql 中使用以下代码语法完成了此操作: 左(我的字段,CHARINDEX('',我的字段)- 1)
但是当我在 SSAS 中应用相同的逻辑时,它似乎不起作用。 LEFT([MyField].[MyField].Members,CHARINDEX('',[MyField].[MyField].Members)-1).
有人知道在 SSAS 中完成同样事情的语法吗?
此致, 规则
您应该使用 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]