2017-03-15 141 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) 
相關問題