【发布时间】:2016-02-25 16:47:09
【问题描述】:
我在报告生成器中有一个多个参数说@route。我需要@route 能够传递空白(''),并且当发生这种情况时,所有内容都会显示在结果中,这将是参数@route 的默认设置。 (由完成 其中路由 LIKE '%' + (LTRIM(RTRIM(@route))) + '%')
基本上做这样的事情:
SELECT *
FROM @finalTable ft
WHERE CASE WHEN @route = '' THEN route LIKE '%' + (LTRIM(RTRIM(@route))) + '%'
ELSE route IN (@route)
END
为了让事情更清楚:
@route 是一个字符串,说有 200 个不同的值。我基本上想设置一个默认值''(空白或空)并允许说10个不同的值供用户选择。所以基本上如果用户没有选择任何东西('因为默认值为空白或可能为空),那么他/她仍然会得到整个结果集。因此,如果我限制用户只传递单个值并且 ' ' 是其中之一,那么 @route LIKE '%' + (LTRIM(RTRIM(@route))) + '%' 工作但我希望它完成也传递了多个值。我希望它现在能更清楚地说明问题!
任何帮助表示赞赏..提前谢谢你
【问题讨论】:
-
我猜你的@route 不为空时类似于
'1,5,10'?? -
@route 实际上是一个 varchar,所以类似于 'Oral'、'Injection'....@juancarlosoropeza
-
那么你需要更好地解释你的问题,因为现在我不认为需要
LIKE -
添加了更多说明@juancarlosoropeza
-
那么带多个参数的字符串看起来如何?
标签: sql sql-server-2008 reportbuilder3.0