我们有一个包含4个多值参数的报告。每个值将是20个字符,并且一些参数具有> 30种选择。如果用户应选择全部,则将参数作为& dept = 10& dept = 20等传递不会起作用,因为它将超过URL的限制2048。有另一种传递方式吗?以下是URL的部分内容,除了Department:
之外,每个parm只有一个值...&安培; p_IncidentStartDate = 2015年1月1日和安培; p_IncidentEndDate = 2016年2月25日&安培; p_DepartmentId = QDP00000000000000041&安培; p_DepartmentId = QDP00000000000000008&安培; p_DepartmentId = QDP00000000000000011&安培; p_TouchpointId = QSE00000000000000075&安培; p_GeneralIssueId = DSE00000000000000021&安培; p_SpecificComplaintId = DSE00000000000000054&安培; p_IsSubmitted = 1安培; p_formGiftCardStatus =待定
数据集中使用的存储过程使用" SplitString"用逗号分隔参数的函数。所以,如果我手动运行proc,我会像这样传递parms:
是否有其他方法可以一次传递除一个值以外的参数? (我已经阅读了很多帖子,但无法找到有效的答案。)
答案 0 :(得分:0)
首先,你可以选择一个手动选项叫做" All"并将查询的逻辑更改为如下所示:
SELECT *
FROM TABLE
WHERE (p_DepartmentId IN (@p_DepartmentId) OR @p_DepartmentId = 'All')
我假设p_DepartmentId是PK?不幸的是,这太久了。我会研究this answer的有效性。但我认为后一种解决方案涉及很多额外的工作。创建自定义" All"可能更容易。像我上面所示的条目。只需将其烘焙到返回部门数据集的查询中,就像这样。
SELECT 'All' AS p_DepartmentId
UNION
SELECT p_DepartmentId FROM TABLE