我是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)
我尝试了上面的方法,但似乎不想让我保存报告以对其进行测试,因此必须存在解析错误。
答案 0 :(得分:1)
首先,我们可以使用Replace
来消除“ OU =“,使用逗号分隔的字符串,然后分割为“,”,并获得第二个值以返回“ OUNAME”:
=Split(Replace(Fields!AD_Location, "OU=", ""), ",").GetValue(1)
我假设我们只对从此字符串中提取第二个值感兴趣,并且我们可以忽略“ DC =“部分,但是如果这对您很重要,则可以嵌套第二个Replace
来删除该前缀。