如何修复我的代码以获取指定符号之前的字符,如 SSDT 中的 @?

How to fix my code to get the characters before specified symbol like @ in SSDT?

我正在使用 visual studio ssdt(报告服务)。 我想从字符串中检索子字符串。 例如:在我的数据库中,我有 7720@449943AJFDJ,7777@9r49r49 or 8888888844@dj939393 我想检索从第一个符号到 @ 的子字符串。 我用这个 code = CInt(Split(Fields!PRESENTATION_NAME.Value.ToString, "@")(0)) 。我没有任何错误,但我的代码显示 38505 - this's not true. 我没有以 38505 开头的字符串。我期待我的代码显示 7720 , 7777 or 8888888844。你知道怎么解决吗? 我上传文件看看我的意思。 谢谢

您似乎在尝试获取 @ 之前的文本?如果是,InStr 函数会查找指定文本第一次出现的位置。然后可以将其用作 Left 函数的第二个参数,从中减去 1 以从最终结果中省略 @

Left(Fields!PRESENTATION_NAME.Value, InStr(Fields!PRESENTATION_NAME.Value, "@") - 1)