2015-02-06 118 views
0

我想確定一個解決方案,使用LIKE與多值參數篩選記錄。在一個簡單的示例中,用戶希望通過輸入中的一個參數窗口下面的SSRS報告返回一組的5位目標代碼:TSQL/SSRS:使用LIKE與多值參數

@parm_Object

1,24,333,34567

這理想情況下將返回對象的代碼滿足以下條件:

1:所有的對象代碼以「1」

24:所有的對象代碼以「24」

333:類似

34567:對象代碼「34567」

我想一個起點,我將確定這是否能在實際的查詢處理,或者我應該做的SSRS側。

+1

http://vyaskn.tripod.com/passing_arrays_to_stored_procedures.htm – 2015-02-06 18:21:53

+0

參見[我的答案在這裏(http://stackoverflow.com/questions/13906944/multi-value-optional-filters-with-the-usage- of-wildcard-in-ssrs-2005/13907268#13907268)的一種方式來使用自定義代碼 – 2015-02-08 23:30:58

回答

0

一般良好的做法是擺脫你不需要的數據儘快。所以這將在查詢中。

SSRS多值參數將顯示爲查詢中的逗號分隔列表。

的第一步就是要擺脫這個逗號分隔的列表的表(或表函數),那麼你可以加入此表,並應用像運營商

例如

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS a 
INNER JOIN dbo.split1('test,fafa,tata') b 
ON 1=1 
WHERE a.COLUMN_NAME like b.Value + '%' 

將返回行列名以測試,fafa或tata開頭。 dbo.split1函數,你必須自己編寫或從互聯網上獲取。例如Tab Alleman建議的鏈接。