带有 Condition 和 s-s-rS 参数的 Select 语句
Posted
技术标签:
【中文标题】带有 Condition 和 s-s-rS 参数的 Select 语句【英文标题】:Select statement with Condition and s-s-rS parameters 【发布时间】:2021-06-17 03:34:49 【问题描述】:我有一个查询的情况如下。
在 s-s-rS 中,我有一个名为 Block 的 @Parameter,其值如下:块 A、块 B 和块 C。用户将选择日期范围,然后选择块值。
输出本质上是一个显示名称的资格系统: 主要查询如下:
Select EmpName, EmpID from EmpDtls where EmpassignID in (@Block)
现在我想做的如下:
当用户选择一个块时:查询应根据查询验证参数。有没有可能做这样的事情:
select Case
when (@Block) = A then (select Personnel_level from Block where PersnelQual = 'A', 'B')
when (@block) = C then (select Personnel_level from Block where PersnelQual = 'B', 'C')
END
from PersnelQual
所以当用户使用以下参数运行报表时:
开始日期:05/01/2021 结束日期:05/07/2021 块:A
输出应该是这样的
Emp Name | Emp Id |
---|---|
Jim | 123 |
Mary | 456 |
这可能吗?
【问题讨论】:
@Block
是什么?逗号分隔的varchar
?那你需要拆分字符串,你有哪个版本的SQL Server?
【参考方案1】:
不需要case
。只需将条件放在WHERE
子句中即可:
select Personnel_level
from Block
where (@Block = A and PersnelQual in ('A', 'B')) or
(@block = C and PersnelQual in ('B', 'C'));
【讨论】:
以上是关于带有 Condition 和 s-s-rS 参数的 Select 语句的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 s-s-rS 中的 URL 访问传递带有特殊字符的多个参数