如果参数为null,则忽略数据集

时间:2015-11-11 16:25:34

标签: reporting-services

我有一个报告,包含多个表/多个数据集和来自两个不同服务器的参数报告。其中一个参数可以设置为null,在这种情况下,我需要一起忽略特定的数据集。我当前收到该数据集的错误,因为正在为数据库名称传递空值,这当然不起作用。我知道我可以改变可见性,但我没有看到我可以忽略数据集本身。我将参数设置为允许空值。

1 个答案:

答案 0 :(得分:0)

你不能忽视"报告执行期间的数据集,每次运行报告时都会执行所有数据集查询。但是,您可以在数据集查询中包含代码(如果源支持它),以便数据集不会根据某个参数的值返回任何行。

e.g。对于SQL Server源:

IF @SomeParameter IS NOT NULL
BEGIN
  -- this path returns some rows
  SELECT 
      Col1
    , Col2
  FROM
    SomeTable
  WHERE
    Col1 = @SomeParameter
END
ELSE
BEGIN
  -- this path does not return any rows
  SELECT 
      Col1
    , Col2
  FROM
    SomeTable
  WHERE 
    1=0   -- always false
END