我能想到的唯一方法就是擁有所有可能性,並獲得所有(如果該列不是選擇過濾的列)。
SELECT * FROM table
WHERE (column1 LIKE '%'+ @param1 +'%' OR @COLUMNS <> 'COLUMN1')
OR (column2 LIKE '%'+ @param1 +'%' OR @COLUMNS <> 'COLUMN2')
...
你可以不是在數據集添加計算的字段(名爲PARAMETER_COLUMN),並在SSRS過濾它:
=IIF(Parameters!COLUMNS.Value = "COLUMN1", Fields!column1.Value,
IIF(Parameters!COLUMNS.Value = "COLUMN2", Fields!column2.Value,
IIF(Parameters!COLUMNS.Value = "COLUMN3", Fields!column3.Value, Fields!column4.Value)))
,然後計算出的字段進行篩選:
Expression: Fields!PARAMETER_COLUMN.Value
Value: Parameters!param1.Value