等效于 SSIS 的 M 表达式
M expression for SSIS equivalent
我刚刚开始探索 PowerBI 上的 DAX;因此,如果此查询对专家用户来说太新手,请原谅。 DAX 函数太 'different' 如果来自 SQL 背景,因此查询。
在 SSIS 中,我使用函数根据字符串替换列中的值(更重要的是,值中有错误)。我正在使用以下内容轻松完成这项工作:
Column2 = SUBSTRING([Column1],1,FINDSTRING([Column1],";#",1) - 1)
即使在查看了 Microsoft help page 上的 Text
函数之后。
花了将近一个小时试图理解;出于某种原因我不能。
有什么想法吗?
M 中的类似表达式是
Text.Middle([Column1], 1, Text.PositionOf([Column1], ";#") - 1)
但您也可以使用 Text.Start
代替,因为您从 1 开始,或者使用 Text.BeforeDelimiter
:
使其更简单
Text.BeforeDelimiter([Column1], ";#")
在 DAX 中,您将使用 MID
/LEFT
而不是 Text.Start
/Text.Middle
和 FIND
或 SEARCH
(取决于如果您需要区分大小写)而不是 Text.PositionOf
.
LEFT ( [Column1], SEARCH ( ";#", [Column1] ) - 1 )
无论哪种方式,逻辑几乎相同,只是函数名称不同。
我刚刚开始探索 PowerBI 上的 DAX;因此,如果此查询对专家用户来说太新手,请原谅。 DAX 函数太 'different' 如果来自 SQL 背景,因此查询。
在 SSIS 中,我使用函数根据字符串替换列中的值(更重要的是,值中有错误)。我正在使用以下内容轻松完成这项工作:
Column2 = SUBSTRING([Column1],1,FINDSTRING([Column1],";#",1) - 1)
即使在查看了 Microsoft help page 上的 Text
函数之后。
花了将近一个小时试图理解;出于某种原因我不能。
有什么想法吗?
M 中的类似表达式是
Text.Middle([Column1], 1, Text.PositionOf([Column1], ";#") - 1)
但您也可以使用 Text.Start
代替,因为您从 1 开始,或者使用 Text.BeforeDelimiter
:
Text.BeforeDelimiter([Column1], ";#")
在 DAX 中,您将使用 MID
/LEFT
而不是 Text.Start
/Text.Middle
和 FIND
或 SEARCH
(取决于如果您需要区分大小写)而不是 Text.PositionOf
.
LEFT ( [Column1], SEARCH ( ";#", [Column1] ) - 1 )
无论哪种方式,逻辑几乎相同,只是函数名称不同。