等效于 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.MiddleFINDSEARCH(取决于如果您需要区分大小写)而不是 Text.PositionOf.

LEFT ( [Column1], SEARCH ( ";#", [Column1] ) - 1 )

无论哪种方式,逻辑几乎相同,只是函数名称不同。