我在这里使用此答案将多个值传递给Stored Procedure
以拆分列表:[https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0ead7ceb-3fdd-4625-aa82-1d4195f984b1/passing-multivalue-parameter-in-stored-procedure-ssrs][1]
以及这个
CHARINDEX(',' + MyTable.Field1 + ',', ',' + @param + ',') > 0
。
这两个选项都给我相同的结果,但不是我想要的结果。
例如,我从MyTable.Field1
中选择了5个值,只返回了2个值。在另一个案例中,我选择了3,但它只返回1.我已经能够选择2个值并返回2.这真的令人沮丧。
如果我使用这样的硬编码值在SELECT
中执行Stored Procedure
语句
WHERE MyTable.Field1 IN ('Apple','Orange','Pear','Banana')
一切都很好。 SQL Profiler
在通过SSRS执行报告时向我显示:
exec MyProc @param=N'Apple,Orange,Pear,Banana'