2017-03-15 142 views
0

我正在重建一个允许用户根据一个小型查询生成报表的应用程序。 SSRS报告参数是否支持选择比较谓词?我的用户需要能够搜索给定的属性等于,不等于,大于等等。SQL Reporting Services报表参数

回答

1

不完全是这样,但我认为您可以复制它,因为它可能是冗长的。首先,您需要一个参数来指定比较运算符(显式列表或对可用选项的查询)。然后,你将不得不使用一个丑陋的一套OR检查您的查询:

SELECT 
    * 
FROM 
    [Table] 
WHERE 
    (@Operator IS NULL) /* All rows if no operator, or some default condition */ 
    OR 
    (@Operator = '=' AND [Field] = [Value]) 
    OR 
    (@Operator = '<' AND [Field] < [Value]) 
    OR 
    (@Operator = '>' AND [Field] > [Value]) 
0

不是直接的,但是您当然可以适应。

首先,添加一个参数与比较选项。我们称之为@Operator

接下来,将条件添加到您的查询WHERE子句中以处理这些情况。例如:

WHERE ((@Operator = '=' and Col1 = @Parameter) OR (@Operator = '!=' and Col1 != @Parameter) ...) 
0

另一种选择是动态的SQL和实际使用的操作参数,直接生成SQL语句。

DECLARE @SQL nvarchar(max) 
SET @SQL = 'SELECT * FROM [Table] WHERE [Attribute] ' + @operator + @value 
EXEC (@SQL) 
相关问题