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
是否可以将参数作为字符串传递到查询中?例如,我希望 单个报告 能够 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