我有一个使用多值参数的报告(使用SSRS构建)。
我想在我的SQL查询中添加一个过滤器WHERE FieldA就像存储在参数中的任何值一样。
因此FieldA
可能具有以下值:
BOBJAMESLOUISE
MARYBOB
JENNY
JOHNLOUISEJAMES
BOB
JENNYJAMESMIKE
@ ParamA
可能包含以下值:
Bob, Louise
因此,在此示例中,只应返回记录1, 3, 4 and 5
感谢提前的任何帮助:)
P.S我正在使用SQL Server 2008
答案 0 :(得分:0)
答案 1 :(得分:0)
我猜它不是尖锐的刺痛部分,因为只是谷歌搜索SQL分裂字符串你可以找到很多例子。在你的情况下,拆分字符串后你想要的是这样的。假设您最终使用的分割字符串函数返回值表。这是您对字段A的比较查询的样子。
SELECT * FROM YourTableWithFieldA WHERE (@ParamA IS NULL OR EXISTS ( SELECT * FROM YourSplitFunctionThatReturnsATableOfValues(@ParamA) SplitTable WHERE (FieldA Like '%'+SplitTable.Value+'%')))