需要解释如何将SSRS多值参数传递给SQL

时间:2017-04-25 14:39:59

标签: sql-server parameters ssrs-2012 udf

我从不再在公司工作的人那里继承了几份SSRS报告。报告将多值参数传递给SQL存储过程。然后,SP在WHERE子句中使用split函数来读取值。在某些参数上,SSRS SP使用Join(Parameters!field.Value,",")以便将字符串值正确传递给SQL。但它不会对所有多值参数执行此操作。

有人可以解释为什么在一些多值参数中需要Join()而不是其他参数吗?我最近不得不调试一个没有填充所有数据的报告,发现我需要添加Join()。但是没有它,其他报告似乎工作正常。

2 个答案:

答案 0 :(得分:0)

将多值参数传递给只接受该字段的1个参数的存储过程时需要加入。如果只选择列表中的一个选项,则不需要连接,但是在选择多个值时,需要将它们连接到单个参数中,传递到存储过程,然后在存储过程内拆分。如果需要单独处理不同的值,则只需在存储过程内拆分一次。

我建议阅读this article on passing multi-value parameters to stored procedures

答案 1 :(得分:0)

我不确定我是否理解你的问题。为什么不将SP改为Where IN(@var)摆脱分裂。