查询可以正常工作并进行排序。但是当ssrs数据集的一部分时查询错误。 如图所示,错误按大小写表达式按顺序缩小。接受语法。 运行期间的第一条错误消息:“报表处理期间发生错误。(rsProcessingAborted)” 错误弹出窗口的“详细信息>>”按钮在下面显示了try n错误。
select <columns>
from <view>
where <criteria>
order by
> error condition - try 1
-- errors "The isnull function requires 2 argument(s)."
case when isnull(<parm>, '') <> ''
then <column to be sorted>
end,
> error condition - try 2
-- errors "An expression of non-boolean type specified in a context where a condition is expected, near ..."
case when (<parm> is not null or
<parm> <> '')
then <column to be sorted>
end,
> error condition - try 3
-- errors "An expression of non-boolean type specified in a context where a condition is expected, near ..."
case when <parm> is not null
then <column to be sorted>
when <parm> <> ''
then <column to be sorted>
end,
<more columns to sort>
答案 0 :(得分:0)
选项1:按原样运行整个查询,然后将数据插入到临时表中。然后,您就可以根据所需的排序依据执行其他操作了;首先在if语句中检查特定列的空值,然后以所需顺序运行select。选项2:以强制方式处理这些空值,即在插入具有isNull约束e.g. Col_1 = isnull(Col_1,'N/A')
的临时表之前检查它们,这样您将有一种确定的方式来按'N / A'过滤数据。然后基于if-else进行检查。选项2可以方便地进行质量检查