SSRS / SQL中的双重拆分

时间:2019-06-17 11:41:25

标签: sql-server reporting-services

我是SQL表达式的新手,并且一直在学习。

我想使用SQL Server Reporting Services报表构建器中的表达式对字符串进行两次拆分。

我基本上在不同的AD OU中都有大量的计算机,并以字符串名称格式将AD OU拉回到报表中,所以它是

  

OU = 12345,OU = OUNAME,OU = OUNAME2,DC =域,DC =本地

为例。我只希望保留字符串的一个特定部分。

我已经有这样的东西了……

=(Split(Fields!AD_Location.Value, "=")).GetValue(2))

但是当我只想要“ OUNAME”时,结果类似于“ OUNAME,OU”,那么可以使用“,”作为分隔符再次拆分第一次拆分的结果吗?

我当时只是想再做一次拆分,但是输入什么呢?可以将第一个拆分存储在表达式的变量中,然后在第二个拆分中使用吗?任何帮助表示赞赏。

=Split(=(Split(Fields!AD_Location.Value, "=")).GetValue(2), ",").GetValue(0)

我尝试了上面的方法,但似乎不想让我保存报告以对其进行测试,因此必须存在解析错误。

1 个答案:

答案 0 :(得分:1)

首先,我们可以使用Replace来消除“ OU =“,使用逗号分隔的字符串,然后分割为“,”,并获得第二个值以返回“ OUNAME”:

=Split(Replace(Fields!AD_Location, "OU=", ""), ",").GetValue(1)

我假设我们只对从此字符串中提取第二个值感兴趣,并且我们可以忽略“ DC =“部分,但是如果这对您很重要,则可以嵌套第二个Replace来删除该前缀。