varchar数字部分的SSRS和比较运算符

时间:2014-11-07 16:30:56

标签: reporting-services string-comparison comparison-operators

我要报告的每个返回的事务都存储有返回原因代码和返回原因代码的描述。我构建了一个包含两列的Tablix - 一列用于返回代码,另一列用于描述。这很有效。报告所有者感到不安的是,一长串代码将分割页面 - 叹息。我被告知要并排显示它们。

我是t-sql和SSRS及其特性的新手。我得到了DBA的极少支持。两个表格,经过筛选后显示满足标准的代码,听起来很简单。

我的研究:

MSDN的支持网络,“表达式”页面中的操作员以及各种帮助主题。我还发现了关于t-sql和类似的分裂函数的SO帖子,以及一个专门询问比较和varchar的帖子。我找到了包含ResultData和Network Steve等有用信息的网站。我还没有找到我认为我正在寻找的东西。

我的问题:

返回原因代码为varchar始终由字母&#39; r&#39;组成。和两个数字(R00到R99)。看来我不能在整个varchar上运行比较运算符,这是一个字母数字;它没有认出IIF((Fields!... <= R17),True,False)。此外,公司不允许编辑仓库或其功能,因此我无法创建自己的。

我的解决方案想法:

  • 将每个R nn 代码分别添加到Tablix过滤器。这意味着每个tablix约50个过滤器,似乎是一种草率或低效的处理方式
  • varchar字符串分隔为其字母和数字组件,并使用标准运算符比较后者。这听起来是最干净的方法,但我不确定如何在表达式或SSRS中实现这一点
  • 放弃双表的想法并创建一个包含四列(代码,描述,代码,描述)的表。这仍然让我知道如何设置限制在“溢出”之前可以创建的行数。到另一边

我很感激被指向该问题的任何资源或任何提供的输入以及我的(不是那么?)逻辑方法。

1 个答案:

答案 0 :(得分:1)

您可以按如下方式实现第二个选项:

CInt(Fields!ReturnCode.Value.Substring(1,2))