SSRS - 是否可以将参数用作查询的变量

SSRS - Is it possible to use parameters as variable for a query

是否可以将参数作为字符串传递到查询中?例如,我希望 单个报告 能够 select 使用报告参数 是否返回空值

select * from dbo.mytable
where myColumn is null

select * from dbo.mytable
where myColumn is not null

我想用报告参数替换 where 语句:@columnNull

@columnNull 的可用值:'is null'、'is not null'

使用参数查询: select * from dbo.mytable where myColumn @columnNull

这不起作用,因为它显然需要 myColumn 和 @columnNull 之间的运算符。如果这不可能,是否还有其他一些我没有想到的等效方法。谢谢

改为使用 bit 参数和 OR:

SELECT *
FROM dbo.MyTable
WHERE (MyColumn IS NULL AND @MyParameter = 0)
   OR (MyColumn IS NOT NULL AND @MyParameter = 1)
OPTION (RECOMPILE);

可能不需要 OPTION (RECOMPILE),但由于查询缓存不佳,这样的查询往往会从中受益。

否则你需要使用动态 SQL,我建议你不应该使用它(基于你尝试使用的语法)并且 SSRS 通常需要一点“推动”来接受动态声明。

是 - 您可以使用数据集表达式将参数用作文本。

="SELECT * FROM dbo.mytable WHERE myColumn " & Parameters!columnNull.Value

这将使用您的参数文本构建数据集。

SELECT * FROM dbo.mytable WHERE myColumn is not null