我有一个带有下拉数据验证框的Excel工作表,用户可以从整数值列表中选择以确定部门或单词“ALL”以获取所有部门。我正在使用SQL将该单元格的值传递给存储过程。在SQL中,我有WHERE Department=@Dept
。
如果我只允许一个部门选择,这很好,但我也想允许所有部门。
对于如何使这项工作有任何想法吗?使用IN
运算符或其他什么需要某种技巧吗?
答案 0 :(得分:1)
存储脚本中的两个解决方案:
if
声明,然后您将需要查询。iif
/ case
声明。答案 1 :(得分:1)
如果您的用户选择“ALL”,您可以将参数设置为NULL:
select * from table1 WHERE Department=isnull(@Dept,Department)
当@Dept
的值为NULL时,查询将为:
select * from table1 WHERE Department=Department
就像1=1
。
答案 2 :(得分:1)
使用CASE
声明,如果它是"全部"你可以传回部门字段。如果其他任何内容都传递了您发送的值:
Where Department = CASE @input WHEN 'ALL' Then Department ELSE @input END